溫馨提示×

Rust如何在Ubuntu上進行單元測試

小樊
50
2025-09-02 19:38:07
欄目: 編程語言

在Rust中,單元測試是通過編寫測試函數并在函數的文檔注釋中使用#[test]屬性來完成的。Rust的測試框架會自動發現這些測試函數,并在運行cargo test命令時執行它們。

要在Ubuntu上進行Rust單元測試,請按照以下步驟操作:

  1. 安裝Rust:如果你還沒有安裝Rust,可以通過以下命令安裝:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

    安裝完成后,確保將Rust添加到你的PATH環境變量中,通常這會自動完成。

  2. 創建一個新的Rust項目(如果你還沒有一個):

    cargo new my_project
    cd my_project
    
  3. 編寫測試:打開src/lib.rssrc/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編譯器僅在這個模塊中編譯和運行測試代碼。

  4. 運行測試:在項目的根目錄下,運行以下命令來執行測試:

    cargo test
    

    這將編譯你的項目和測試,并運行所有標記為#[test]的測試函數。測試結果將顯示在終端中,包括每個測試是否通過。

  5. 查看測試輸出:如果測試失敗,cargo test會提供失敗測試的詳細信息,包括期望值和實際值。

  6. 運行特定的測試:如果你只想運行特定的測試,可以使用-k標志后跟測試名稱的模式。例如:

    cargo test -k test_add
    
  7. 禁用測試:如果你想跳過某些測試,可以使用#[ignore]屬性。例如:

    #[test]
    #[ignore]
    fn slow_test() {
        // 這個測試很慢,我們不想每次都運行它
        sleep(std::time::Duration::from_secs(60));
    }
    

    使用cargo test時,被忽略的測試將不會運行。

  8. 集成測試:除了單元測試,你還可以編寫集成測試。集成測試通常位于tests目錄中的一個單獨的文件里,例如tests/integration_test.rs。要運行集成測試,使用相同的cargo test命令。

遵循這些步驟,你可以在Ubuntu上輕松地進行Rust單元測試。記得在提交代碼之前運行測試,以確保你的更改沒有破壞現有的功能。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女