• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()17 fn 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