serial_test
serial_test
允许使用serial
属性创建序列化的Rust测试,例如:
#[test]
#[serial]
fn test_serial_one() {
// 执行操作
}
#[test]
#[serial]
fn test_serial_another() {
// 执行操作
}
#[tokio::test]
#[serial]
async fn test_serial_another() {
// 异步执行操作
}
带有serial
属性的多个测试保证会被串行执行。但不保证测试的执行顺序。带有parallel
属性的其他测试可能会同时运行,但不会与带有serial
属性的测试同时运行。既不带serial
也不带parallel
属性的测试可能随时运行,不对其时间做任何保证!这两种属性都支持可选的键来定义要一起串行运行的测试子集,详情请参阅文档。
对于像文档测试和集成测试这样作为单独进程运行的测试,我们还支持file_serial
,具有类似的属性,但基于文件锁定。请注意,由于使用不同的锁定方法,一个带有serial
的测试和另一个带有file_serial
的测试之间没有任何保证。
所有这些属性也可以应用于mod
级别,并会自动应用于该块中的所有测试函数。
使用方法
这里支持的最低Rust版本是1.68.2。注意这是最低_支持_版本,它可能可以在更低版本上编译,但完全不受支持。升级到这个版本将需要主版本号的提升。1.x版本支持1.51,如果你需要更低的版本。
在你的Cargo.toml中添加
[dev-dependencies]
serial_test = "*"
并在你的导入部分加上use serial_test::serial;
。
然后你可以根据需要在测试中添加#[serial]
或#[serial(some_key)]
。