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:
- In default mode,
#[flaky]
will retry a test for a few times and pass it if at least one run has passed. - 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.