在Rust中,單元測試是內置的,并且非常容易進行。Rust的包管理器和構建系統Cargo提供了一個簡單的命令來運行測試。以下是在Linux上進行Rust單元測試的步驟:
編寫測試函數:
在Rust中,你可以使用#[test]
屬性來標記一個函數作為測試函數。這些函數通常放在與它們所測試的代碼相同的模塊中,或者在tests
模塊中。
// 在lib.rs或main.rs中
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}
運行測試: 打開終端,導航到你的Rust項目目錄,然后運行以下命令:
cargo test
這個命令會編譯你的項目,并運行所有標記為#[test]
的測試函數。測試結果會顯示在終端中,包括通過的測試和失敗的測試。
查看詳細的測試輸出:
如果你想看到更詳細的輸出,可以使用--nocapture
標志來防止Cargo捕獲測試的輸出:
cargo test -- --nocapture
只運行特定的測試:
如果你只想運行一個特定的測試函數,可以使用-p
或--test
標志后跟測試名稱:
cargo test -p your_test_name
如果你的測試函數有描述性的名稱,你可以使用部分匹配來運行它們:
cargo test your_test_name_part
運行測試而不編譯代碼:
如果你已經編譯了代碼,并且只想運行測試,可以使用--test
標志:
cargo test --test your_test_name
檢查測試覆蓋率:
Cargo還支持測試覆蓋率檢查,但這需要額外的工具,如kcachegrind
或llvm-cov
。要啟用覆蓋率檢查,你需要設置環境變量并重新運行cargo test
。
請注意,上述步驟適用于大多數情況,但是如果你的項目結構比較特殊,或者你需要更高級的測試配置,可能需要查閱Cargo的文檔來獲取更多信息。