继续重新运行单元测试,直到得到"失败"



运行单元测试时,我的输出不一致。大多数情况下,单元测试通过而没有任何问题,很少会失败。

是否有任何cargo test参数可以帮助继续重新运行单元测试,直到遇到错误?

在任何人复制此代码之前,请注意:这是用于查找错误的代码,而不是编写测试的一般建议


您可以使用loop创建无休止的循环(读取文档(,这些循环只会在恐慌、中断等情况下停止。

通过这种方式,您可以通过cargo test运行测试,它只会在断言失败时停止,或通过中断手动停止(ctrl+C(。

示例

use rand::Rng;
#[test]
fn loop_inconsistent_test() {
loop {
inconsistent_test();
}
}
fn inconsistent_test() {
let mut rng = rand::thread_rng();
let num = rng.gen_range(0..1_000_000);
assert_eq!(num, 0); // if this fails, loop will stop
}

相关内容

最新更新