Debian上Rust的单元测试如何编写与执行
在Debian系统上编写Rust单元测试,首先需要安装Rust环境,然后使用cargo新建项目,在源文件中通过#[test]属性标记测试函数,并使用#[cfg(test)]条件编译测试模块,接着运行cargotest命令执行所有测试,可以添加--nocapture选项查看详细输出。整个过程无需额外配置,流程简单。
想在 Debian 上为 Rust 项目写单元测试?其实流程很直接,几步就能走通。下面按顺序拆开来说。

1. 安装 Rust
先确认系统里有没有 Rust 环境。如果没有,直接去官网(https://www.rust-lang.org/)按指引安装就行。最常用的方式是用下面这条命令搞定:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
跟着提示走,最后记得把 Rust 加到 PATH 环境变量里,这样后续操作才顺手。
2. 创建一个新的 Rust 项目
用 cargo 来新建项目,比如叫 my_project:
cargo new my_project
这条命令会在当前目录下生成一个 my_project 文件夹,里面已经包含了一个简单的 Rust 程序和一个 tests 目录,省得从头搭架子。
3. 编写单元测试
库项目的话,代码写在 src/lib.rs;可执行程序项目则写在 src/main.rs。测试代码通常和被测试的代码放在同一个文件里,用 #[test] 属性标记。举个例子,在 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(1, 2), 3);
}
}
这里的关键点:#[cfg(test)] 表示只有在运行测试时才会编译这个模块,不会影响正常产物。测试函数 test_add 用 assert_eq! 宏来验证结果是否符合预期。
4. 运行单元测试
在项目根目录下执行 cargo test,它会自动编译并运行所有测试:
cargo test
输出大致长这样:
running 1 test
test tests::test_add ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
看到 ok 就说明测试通过了。
5. 查看详细的测试输出(可选)
如果想看到更详细的日志,比如断言失败时的实际值和期望值,可以加上 --nocapture 参数:
cargo test -- --nocapture
这样每个测试的打印输出都会显示在终端里,调试时特别有用。
整体来看,Debian 上做 Rust 单元测试就是这么几步:装好环境,建个项目,写测试,跑起来。没有复杂配置,也没有额外依赖,上手非常顺滑。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。













