# fickle
Handle fickle (flaky) tests in rust.
## Usage
The primary api is to use the `fickle` macro attribute like this:
```rust
#[test]
#[fickle]
fn flaky_test() {
// your test here
}
```
By default, it will re-run your test 1 time (if the first time fails). If you want to allow more than 1 retry you can specify that with the `retries` argument.
```rust
#[test]
#[fickle(retries=3)]
fn flakier_test() {
// your test here
}
```
There is also the option of using the `Fickle` struct (which is what the macro expands to under the hood). This would look something like this
```rust
#[test]
fn flaky_test() {
let fickle = fickle::Fickle::new(3); // or Fickle::default()
let block: fn() -> () = || {
// your test here
};
fickle.run(block).unwrap();
}
```