Testing 运行Rust cargo测试并让测试运行程序向控制台stdout或stderr显示任何日志输出的方法有哪些?

Testing 运行Rust cargo测试并让测试运行程序向控制台stdout或stderr显示任何日志输出的方法有哪些?,testing,logging,rust,rust-cargo,Testing,Logging,Rust,Rust Cargo,我学到了: 货物测试--nocapture告诉货物显示输出而不是隐藏输出;我感兴趣的是看到成功测试的输出,而不仅仅是失败的测试 env_loggercrater,可使用环境变量设置日志级别 我正在寻找任何类似的方法,理想的情况是任何官方参考指南都能展示实现这一点的好方法。这里有一个对我有效的解决方案 Cargo.toml依赖项: env_logger = "*" 演示源代码: use log::*; pub fn foo() -> bool { info!("hello w

我学到了:

  • 货物测试--nocapture
    告诉货物显示输出而不是隐藏输出;我感兴趣的是看到成功测试的输出,而不仅仅是失败的测试
  • env_logger
    crater,可使用环境变量设置日志级别

我正在寻找任何类似的方法,理想的情况是任何官方参考指南都能展示实现这一点的好方法。

这里有一个对我有效的解决方案

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   

如果测试失败,Cargo将显示输出,因此通常不需要这样做。不管怎样,你的解决方案还可以。谢谢!我会按照你的建议将信息从问题转移到答案。与另一个问题一样,理想情况下请不要关闭,因为我花了2个多小时才弄清楚这个信息,而且在文档和各种博客文章中都不明显(IMHO)。货物——没有捕获很容易找到,