3 stable releases

1.0.2 Sep 11, 2023

#358 in Testing

Download history 53/week @ 2024-03-11 59/week @ 2024-03-18 101/week @ 2024-03-25 137/week @ 2024-04-01 60/week @ 2024-04-08 110/week @ 2024-04-15 228/week @ 2024-04-22 91/week @ 2024-04-29 141/week @ 2024-05-06 165/week @ 2024-05-13 39/week @ 2024-05-20 53/week @ 2024-05-27 143/week @ 2024-06-03 90/week @ 2024-06-10 56/week @ 2024-06-17 87/week @ 2024-06-24

378 downloads per month
Used in scalesocket

MIT/Apache

11KB
56 lines

build status docs.rs license is MIT or Apache 2.0

mark-flaky-tests

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.

Dependencies

~2.2–3MB
~61K SLoC