ubuntu

Rust如何在Ubuntu上进行单元测试

小樊
45
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
看了该问题的人还看了