Rust 测试运行控制与组织全解析
1. 控制测试运行方式
cargo test 用于在测试模式下编译代码并运行生成的测试二进制文件。可以通过指定命令行选项来改变其默认行为。默认情况下, cargo test 生成的二进制文件会并行运行所有测试,并捕获测试运行期间产生的输出,这样能让测试结果输出更易读。
命令行选项分为两类,一类是给 cargo test 的,另一类是给生成的测试二进制文件的。使用分隔符 -- 来区分这两类参数。运行 cargo test --help 可查看能用于 cargo test 的选项,运行 cargo test -- --help 可查看分隔符 -- 之后能用的选项。
1.1 并行或连续运行测试
默认情况下,运行多个测试时会使用线程并行执行,这样能更快完成测试,让你更快得到代码是否正常工作的反馈。但要确保测试之间相互独立,不依赖共享状态,包括共享环境,如当前工作目录或环境变量。
例如,每个测试都创建一个名为 test-output.txt 的文件并写入数据,然后读取该文件内容进行断言。由于测试并行运行,一个测试可能会在另一个测试读写文件期间覆盖该文件,导致测试失败。解决方法有两种:一是确保每个测试写入不同的文件;二是逐个运行测试。
若不想并行运行测试或想更精细地控制线程数量,可使用 --test-threads
超级会员免费看
订阅专栏 解锁全文
1264

被折叠的 条评论
为什么被折叠?



