如何使用属性禁用 Rust 中的单元测试?
How to disable a unit test in rust with an attribute?
一个模块包含多个测试,如下所示:
#[cfg(test)]
mod tests_cases {
/*
#[test]
fn test_1() {
let a = 1;
let b = 2;
println!("{},{}", a, b);
assert_ne!(a, b);
}
*/
#[test]
fn test_2() {
let c = 1;
let d = 1;
println!("currently working on this: {},{}", c, d);
assert_eq!(c, d);
}
}
进行第二次测试并打印出来时
(cargo test -- --nocapture
),
我不想看到第一个测试的输出。
是否有禁用注释单元测试的选项?
或者是否可以选择 运行 第二个单元测试?
谢谢。
如果您从不需要的测试中删除 #[test]
属性,那么 cargo test
将忽略它。
另一种选择是添加 #[ignore]
属性。
#[ignore]
#[test]
fn test_1() {
let a = 1;
let b = 2;
println!("{},{}", a, b);
assert_ne!(a, b);
}
这会在测试结果中添加一个漂亮的颜色忽略。
test tests::test_1 ... ignored
test tests::test_2 ... ok
test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.03s
一个模块包含多个测试,如下所示:
#[cfg(test)]
mod tests_cases {
/*
#[test]
fn test_1() {
let a = 1;
let b = 2;
println!("{},{}", a, b);
assert_ne!(a, b);
}
*/
#[test]
fn test_2() {
let c = 1;
let d = 1;
println!("currently working on this: {},{}", c, d);
assert_eq!(c, d);
}
}
进行第二次测试并打印出来时
(cargo test -- --nocapture
),
我不想看到第一个测试的输出。
是否有禁用注释单元测试的选项?
或者是否可以选择 运行 第二个单元测试?
谢谢。
如果您从不需要的测试中删除 #[test]
属性,那么 cargo test
将忽略它。
另一种选择是添加 #[ignore]
属性。
#[ignore]
#[test]
fn test_1() {
let a = 1;
let b = 2;
println!("{},{}", a, b);
assert_ne!(a, b);
}
这会在测试结果中添加一个漂亮的颜色忽略。
test tests::test_1 ... ignored
test tests::test_2 ... ok
test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.03s