3 stable releases

1.0.2 Sep 11, 2023

#303 in Testing

Download history 1/week @ 2023-12-18 12/week @ 2024-01-08 14/week @ 2024-01-15 21/week @ 2024-01-22 92/week @ 2024-01-29 38/week @ 2024-02-05 48/week @ 2024-02-12 37/week @ 2024-02-19 67/week @ 2024-02-26 54/week @ 2024-03-04 53/week @ 2024-03-11 59/week @ 2024-03-18 101/week @ 2024-03-25 137/week @ 2024-04-01

354 downloads per month
Used in scalesocket


56 lines

build status docs.rs license is MIT or Apache 2.0


There're some tests that sometimes pass and sometimes fail. We call them "flaky".

This crate provides a macro attribute #[flaky] that allows you to mark all the flaky tests in your codebase. You then have two options:

  1. In default mode, #[flaky] will retry a test for a few times and pass it if at least one run has passed.
  2. In strict mode, #[flaky] will still run test for a few times, but will only pass it if every run has passed.

To enable strict mode, set the environment variable MARK_FLAKY_TESTS_STRICT=true.

To adjust the amount of times a test is retried, set the environment variable MARK_FLAKY_TESTS_RETRIES to the desired amount. Default is 3.

To use #[flaky] with #[tokio::test], enable the tokio feature.

Tests that return ExitCode are currently not supported due to std API limitations.


~60K SLoC