有什么方法可以运行Rust货物测试,并让测试运行程序将任何日志输出显示到控制台stdout或stderr?

时间:2020-06-08 16:25:07

标签: testing logging rust rust-cargo

我学到了:

  • cargo test -- --nocapture告诉Cargo显示输出而不是隐藏输出;我对看到成功测试的输出感兴趣,而不仅仅是失败的测试。
  • env_logger板条箱,该板条箱允许使用环境变量设置日志级别。

我正在寻找任何类似的方法,最好是寻求能显示出实现此效果的好方法的任何官方参考指南。

1 个答案:

答案 0 :(得分:1)

这是一种对我有用的解决方案。

Cargo.toml依赖项:

env_logger = "*"

演示源代码:

use log::*;

pub fn foo() -> bool {
    info!("hello world");
    true
}

#[cfg(test)]
mod tests {
    use super::*;
    use env_logger;
    #[test]
    fn test_foo() {
        env_logger::init();
        assert!(foo());
    }
}

命令:

RUST_LOG=info cargo test -- --nocapture