在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单元测试。记得在提交代码之前运行测试,以确保你的更改没有破坏现有的功能。