运行Rust cargo测试并让测试运行程序将任何日志输出显示到控制台stdout或stderr的方法是什么?

zvokhttg  于 2022-12-29  发布在  Go
关注(0)|答案(2)|浏览(234)

我学到了:

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

我正在寻找任何类似的方法,最好是任何官方的参考指南,显示了很好的方法来完成这一点。

pokxtpni

pokxtpni1#

这里有一个对我有效的解决方案。
货物运输依赖性:

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
ttp71kqs

ttp71kqs2#

《铁 rust 》一书展示了如何做到这一点。
该节的有关部分:
如果我们还想看到通过测试的打印值,我们可以告诉Rust也显示成功测试的输出,使用--show-output。

cargo test -- --show-output

相关问题