A lib help you run test with condition
Run test case when the environment variable is set. A solution for this issue of rust-lang.
```rust
mod tests {
// PWD environment variable exists
#[test_with::env(PWD)]
fn test_works() {
assert!(true);
}
// NOTHING environment variable does not exist
#[test_with::env(NOTHING)]
fn test_ignored() {
panic!("should be ignored")
}
} ```
Result of cargo test
```text
running 2 tests
test tests::testignored ... ignored
test tests::testworks ... ok
test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s ```
If the test depends on more than one environment variables,
you can write it with multiple variables, #[test_with::env(VAR1, VAR2)]
.
Run test case when the file or folder exist. This is good for testing with database config.
If you want to check the folder exist or not, please use path
.
```rust
mod tests {
// hostname exists
#[test_with::file(/etc/hostname)]
fn test_works() {
assert!(true);
}
// nothing file does not exist
#[test_with::file(/etc/nothing)]
fn test_ignored() {
panic!("should be ignored")
}
// etc exists
#[test_with::path(/etc)]
fn test_works_for_path() {
assert!(true);
}
} ```
If the test depends on more than one file or path,
you can write it with multiple file/path,
#[test_with::file(/file1, /file2)]
or #[test_with::path(/folder, /file)]
.