在Rust中,單元測試是通過編寫測試函數并在函數的文檔注釋中使用#[test]屬性來完成的。Rust的測試框架會自動發現這些測試函數,并在運行cargo test命令時執行它們。
要在Ubuntu上進行Rust單元測試,請按照以下步驟操作:
安裝Rust:如果你還沒有安裝Rust,可以通過以下命令安裝:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安裝完成后,確保將Rust添加到你的PATH環境變量中,通常這會自動完成。
創建一個新的Rust項目(如果你還沒有一個):
cargo new my_project
cd my_project
編寫測試:打開src/lib.rs或src/main.rs文件,并添加你的測試函數。例如,在src/lib.rs中:
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_add() {
assert_eq!(add(2, 2), 4);
}
}
注意#[cfg(test)]屬性,它告訴Rust編譯器僅在這個模塊中編譯和運行測試代碼。
運行測試:在項目的根目錄下,運行以下命令來執行測試:
cargo test
這將編譯你的項目和測試,并運行所有標記為#[test]的測試函數。測試結果將顯示在終端中,包括每個測試是否通過。
查看測試輸出:如果測試失敗,cargo test會提供失敗測試的詳細信息,包括期望值和實際值。
運行特定的測試:如果你只想運行特定的測試,可以使用-k標志后跟測試名稱的模式。例如:
cargo test -k test_add
禁用測試:如果你想跳過某些測試,可以使用#[ignore]屬性。例如:
#[test]
#[ignore]
fn slow_test() {
// 這個測試很慢,我們不想每次都運行它
sleep(std::time::Duration::from_secs(60));
}
使用cargo test時,被忽略的測試將不會運行。
集成測試:除了單元測試,你還可以編寫集成測試。集成測試通常位于tests目錄中的一個單獨的文件里,例如tests/integration_test.rs。要運行集成測試,使用相同的cargo test命令。
遵循這些步驟,你可以在Ubuntu上輕松地進行Rust單元測試。記得在提交代碼之前運行測試,以確保你的更改沒有破壞現有的功能。