1336d762aSopenharmony_ci/*! 2336d762aSopenharmony_ciUsing `env_logger` in tests. 3336d762aSopenharmony_ci 4336d762aSopenharmony_ciLog events will be captured by `cargo` and only printed if the test fails. 5336d762aSopenharmony_ciYou can run this example by calling: 6336d762aSopenharmony_ci 7336d762aSopenharmony_ci```text 8336d762aSopenharmony_cicargo test --example in_tests 9336d762aSopenharmony_ci``` 10336d762aSopenharmony_ci 11336d762aSopenharmony_ciYou should see the `it_does_not_work` test fail and include its log output. 12336d762aSopenharmony_ci*/ 13336d762aSopenharmony_ci 14336d762aSopenharmony_ci#[cfg_attr(test, macro_use)] 15336d762aSopenharmony_ciextern crate log; 16336d762aSopenharmony_ci 17336d762aSopenharmony_cifn main() {} 18336d762aSopenharmony_ci 19336d762aSopenharmony_ci#[cfg(test)] 20336d762aSopenharmony_cimod tests { 21336d762aSopenharmony_ci fn init_logger() { 22336d762aSopenharmony_ci let _ = env_logger::builder() 23336d762aSopenharmony_ci // Include all events in tests 24336d762aSopenharmony_ci .filter_level(log::LevelFilter::max()) 25336d762aSopenharmony_ci // Ensure events are captured by `cargo test` 26336d762aSopenharmony_ci .is_test(true) 27336d762aSopenharmony_ci // Ignore errors initializing the logger if tests race to configure it 28336d762aSopenharmony_ci .try_init(); 29336d762aSopenharmony_ci } 30336d762aSopenharmony_ci 31336d762aSopenharmony_ci #[test] 32336d762aSopenharmony_ci fn it_works() { 33336d762aSopenharmony_ci init_logger(); 34336d762aSopenharmony_ci 35336d762aSopenharmony_ci let a = 1; 36336d762aSopenharmony_ci let b = 2; 37336d762aSopenharmony_ci 38336d762aSopenharmony_ci debug!("checking whether {} + {} = 3", a, b); 39336d762aSopenharmony_ci 40336d762aSopenharmony_ci assert_eq!(3, a + b); 41336d762aSopenharmony_ci } 42336d762aSopenharmony_ci 43336d762aSopenharmony_ci #[test] 44336d762aSopenharmony_ci fn it_does_not_work() { 45336d762aSopenharmony_ci init_logger(); 46336d762aSopenharmony_ci 47336d762aSopenharmony_ci let a = 1; 48336d762aSopenharmony_ci let b = 2; 49336d762aSopenharmony_ci 50336d762aSopenharmony_ci debug!("checking whether {} + {} = 6", a, b); 51336d762aSopenharmony_ci 52336d762aSopenharmony_ci assert_eq!(6, a + b); 53336d762aSopenharmony_ci } 54336d762aSopenharmony_ci} 55