Source code
Revision control
Copy as Markdown
Other Tools
/*!
Using `env_logger` in tests.
Log events will be captured by `cargo` and only printed if the test fails.
You can run this example by calling:
```text
cargo test --example in_tests
```
You should see the `it_does_not_work` test fail and include its log output.
*/
#[cfg_attr(test, macro_use)]
extern crate log;
fn main() {}
#[cfg(test)]
mod tests {
fn init_logger() {
let _ = env_logger::builder()
// Include all events in tests
.filter_level(log::LevelFilter::max())
// Ensure events are captured by `cargo test`
.is_test(true)
// Ignore errors initializing the logger if tests race to configure it
.try_init();
}
#[test]
fn it_works() {
init_logger();
let a = 1;
let b = 2;
debug!("checking whether {} + {} = 3", a, b);
assert_eq!(3, a + b);
}
#[test]
fn it_does_not_work() {
init_logger();
let a = 1;
let b = 2;
debug!("checking whether {} + {} = 6", a, b);
assert_eq!(6, a + b);
}
}