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
crater,可使用环境变量设置日志级别env_logger
我正在寻找任何类似的方法,理想的情况是任何官方参考指南都能展示实现这一点的好方法。这里有一个对我有效的解决方案 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)。货物——没有捕获很容易找到,