在Debian上测试Rust项目前,需先安装Rust编译器(rustc)及包管理工具(cargo)。推荐通过rustup(Rust官方工具链管理器)安装,步骤如下:
打开终端,运行以下命令下载并执行安装脚本:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,根据提示重启终端或运行source $HOME/.cargo/env,将Rust添加到PATH环境变量中。验证安装是否成功:
rustc --version # 查看Rust编译器版本
cargo --version # 查看cargo版本
若输出版本号,则说明安装成功。
若已有Rust项目,直接进入项目目录即可;若需新建项目,使用cargo命令生成:
cargo new my_project # 创建名为my_project的新项目(默认生成库项目)
cd my_project # 进入项目目录
cargo new会自动生成项目结构(含src目录、Cargo.toml配置文件等)。
Rust支持单元测试(测试单个函数/模块)、集成测试(测试多个模块的交互)和文档测试(测试代码示例)。以下是常见的单元测试写法:
src/lib.rs):在库项目中,测试代码通常与被测代码放在同一文件,通过#[cfg(test)]模块隔离:// src/lib.rs
pub fn add(a: i32, b: i32) -> i32 { // 被测函数
a + b
}
#[cfg(test)] // 仅在测试时编译此模块
mod tests {
use super::*; // 引入父模块的函数
#[test] // 标记为测试函数
fn test_add_positive() {
assert_eq!(add(2, 3), 5); // 断言相等
}
#[test]
fn test_add_negative() {
assert_eq!(add(-1, 1), 0);
}
}
src/main.rs):可执行项目的测试逻辑类似,但通常会将复杂逻辑抽离到src/lib.rs中,再编写测试。在项目根目录下,使用cargo test命令运行所有测试:
cargo test
该命令会自动完成以下步骤:
#[test]的函数;常用选项:
--nocapture:显示测试中的println!/dbg!输出(默认会捕获输出,仅显示失败信息);--test <name>:仅运行指定名称的测试模块;--verbose:显示详细编译和测试过程。若测试失败,可通过以下方式定位问题:
cargo test -- --nocapture显示测试中的打印信息;rust-gdb(GDB绑定)或rust-lldb(LLDB绑定)调试,例如:rust-gdb target/debug/my_project-123456 # 替换为你的项目可执行文件
(gdb) break main # 设置断点
(gdb) run # 运行程序
println!("变量值: {:?}", variable),帮助追踪变量状态。为确保代码变更后自动运行测试,可配置持续集成(CI)。以下以GitHub Actions为例(适用于Debian环境):
.github/workflows/rust.yml文件,内容如下:name: Rust CI
on: # 触发条件:push到main分支或提交PR到main分支
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest # 使用最新的Ubuntu环境(兼容Debian)
steps:
- uses: actions/checkout@v2 # 检出代码
- name: Install Rust # 安装Rust稳定版
run: rustup default stable
- name: Build project # 编译项目
run: cargo build --verbose
- name: Run tests # 运行测试
run: cargo test --verbose
通过以上步骤,你可以在Debian系统上高效地测试Rust项目,确保代码质量。