在Rust的世界里,单元测试不是外挂插件,而是语言自带的硬核能力。你只需要敲下cargo test,就能让整个测试流程跑起来。下面,咱们就以Ubuntu环境为例,看看从头到尾怎么操作。

-
先把Rust装上。如果你还没装,跑这条命令就行:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh装完之后记得刷新一下shell环境,让新安装的工具链生效:
source $HOME/.cargo/env -
创建一个新项目(要是你手头已经有项目,跳过这步):
cargo new my_project cd my_project -
写测试。Rust的惯例是把测试代码和被测试代码放在同一个文件里,但要用
#[cfg(test)]模块包起来。比方说,你在lib.rs里定义了一个add函数,那测试可以写成这样:// 在 lib.rs 中 #[cfg(test)] mod tests { use super::*; #[test] fn test_add() { assert_eq!(add(2, 2), 4); } } -
跑测试只需要一条命令:
cargo test它会自动编译你的代码和测试,然后执行所有标记了
#[test]的函数。结果会直接打印在终端里,一目了然。 -
测试结果怎么看?
cargo test会列出每个测试的通过或失败状态。如果某个测试挂了,它会告诉你失败的原因和具体位置,方便你快速定位问题。 -
有时候你只想跑一个特定的测试,比如只跑
test_add,那就在命令后面加上测试名:cargo test test_add -
如果某些测试暂时不想跑(比如特别耗时的测试),可以给它加上
#[ignore]属性,它们就会被跳过:#[test] #[ignore] fn test_something_expensive() { // 这个测试将会被忽略 } -
想看到更详细的输出,比如测试过程中打印的日志?加上
--nocapture标志就行了:cargo test -- --nocapture
以上就是Ubuntu上Rust单元测试的基本流程。别看步骤简单,Rust的测试框架其实很强大——参数化测试、子测试、集成测试,这些高级功能一个都不少。等你熟练了,自然会体会到它的威力。