1 /*! 2 Using `env_logger` in tests. 3 4 Log events will be captured by `cargo` and only printed if the test fails. 5 You can run this example by calling: 6 7 ```text 8 cargo test --example in_tests 9 ``` 10 11 You should see the `it_does_not_work` test fail and include its log output. 12 */ 13 14 #[cfg_attr(test, macro_use)] 15 extern crate log; 16 main()17fn main() {} 18 19 #[cfg(test)] 20 mod tests { init_logger()21 fn init_logger() { 22 let _ = env_logger::builder() 23 // Include all events in tests 24 .filter_level(log::LevelFilter::max()) 25 // Ensure events are captured by `cargo test` 26 .is_test(true) 27 // Ignore errors initializing the logger if tests race to configure it 28 .try_init(); 29 } 30 31 #[test] it_works()32 fn it_works() { 33 init_logger(); 34 35 let a = 1; 36 let b = 2; 37 38 debug!("checking whether {} + {} = 3", a, b); 39 40 assert_eq!(3, a + b); 41 } 42 43 #[test] it_does_not_work()44 fn it_does_not_work() { 45 init_logger(); 46 47 let a = 1; 48 let b = 2; 49 50 debug!("checking whether {} + {} = 6", a, b); 51 52 assert_eq!(6, a + b); 53 } 54 } 55