我有一些使用info!Rust 日志箱的测试。我试过:
RUST_LOG=all cargo test -- --nocapture my_tests
Run Code Online (Sandbox Code Playgroud)
但日志根本不会出来。
但我没有初始化记录器,因为 puttinenv_logger::init();不起作用:
failed to resolve: use of undeclared crate or module `env_logger`
Run Code Online (Sandbox Code Playgroud)
Inl*_*ine 30
您可以尝试使用多种解决方法之一。
首先是在编译板条箱进行测试时使用,println如下所示。
#[cfg(not(test))]
use log::{info, warn}; // Use log crate when building application
#[cfg(test)]
use std::{println as info, println as warn}; // Workaround to use prinltn! for logs.
Run Code Online (Sandbox Code Playgroud)
为了防止cargo静默测试标准输出,请运行这样的测试
$ cargo test -- --nocapture
Run Code Online (Sandbox Code Playgroud)
另一个优雅的解决方法是使用test-log crate
#[test_log::test] // Automatically wraps test to initialize logging
fn hello_log_tests() {
// ...
}
Run Code Online (Sandbox Code Playgroud)
要使用依赖项(例如env_logger错误消息中提到的)进行测试,请将其包含在dev-dependencies部分中
[dev-dependencies]
env_logger = "*"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14541 次 |
| 最近记录: |