并行或连续的运行测试
可以设置测试线程的数量
$ cargo test -- --test-threads=1
显示函数输出
默认情况下,当测试通过时,Rust 的测试库会截获打印到标准输出的所有内容。比如在测试中调用了 println! 而测试通过了,我们将不会在终端看到 println! 的输出:只会看到说明测试通过的提示行。如果测试失败了,则会看到所有标准输出和其他错误信息。
如果希望看到测试中打印的值:
$ cargo test -- --show-output
通过指定名字来运行部分测试
pub fn add_two(a: i32) -> i32 {a + 2}#[cfg(test)]mod tests {use super::*;#[test]fn add_two_and_two() {assert_eq!(4, add_two(2));}#[test]fn add_three_and_two() {assert_eq!(5, add_two(3));}#[test]fn one_hundred() {assert_eq!(102, add_two(100));}}
运行单个测试
$ cargo test one_hundredCompiling adder v0.1.0 (file:///projects/adder)Finished test [unoptimized + debuginfo] target(s) in 0.69sRunning unittests (target/debug/deps/adder-92948b65e88960b4)running 1 testtest tests::one_hundred ... oktest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s
过滤运行多个测试
$ cargo test addCompiling adder v0.1.0 (file:///projects/adder)Finished test [unoptimized + debuginfo] target(s) in 0.61sRunning unittests (target/debug/deps/adder-92948b65e88960b4)running 2 teststest tests::add_three_and_two ... oktest tests::add_two_and_two ... oktest result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
忽略某些测试
#[test]fn it_works() {assert_eq!(2 + 2, 4);}#[test]#[ignore]fn expensive_test() {// 需要运行一个小时的代码}
如果只希望运行被忽略的测试,可以使用 cargo test -- --ignored。如果希望全部运行,cargo test -- --include-ignored。
