簡體   English   中英

有哪些方法可以運行 Rust cargo test 並讓測試運行器將任何日志 output 顯示到控制台 stdout 或 stderr?

[英]What are ways to run Rust cargo test and have the test runner display any log output to the console stdout or stderr?

我學過:

  • cargo test -- --nocapture告訴 Cargo 顯示 output 而不是隱藏 output; 我有興趣看到 output 成功的測試,而不僅僅是失敗的測試。
  • env_logger crate 允許使用環境變量來設置日志級別。

我正在尋找任何類似的方法,理想情況下是任何顯示完成此操作的好方法的官方參考指南。

這是一個對我有用的解決方案。

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   

Rust 一書展示了如何做到這一點

該部分的相關部分:

如果我們還想看到通過測試的打印值,我們可以告訴 Rust 也顯示成功測試的 output --show-output。

cargo test -- --show-output

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM