17 个版本 (5 个稳定版)
3.1.1 | 2024 年 4 月 27 日 |
---|---|
3.0.0 | 2024 年 1 月 6 日 |
2.0.0 | 2023 年 3 月 30 日 |
1.0.0 | 2023 年 1 月 17 日 |
0.1.0 | 2018 年 12 月 30 日 |
#555 in 测试
1,693,049 每月下载量
用于 795 个 Crates (9 个直接使用)
31KB
616 行
serial_test
serial_test
允许使用 serial
属性创建序列化 Rust 测试,例如。
#[test]
#[serial]
fn test_serial_one() {
// Do things
}
#[test]
#[serial]
fn test_serial_another() {
// Do things
}
#[tokio::test]
#[serial]
async fn test_serial_another() {
// Do things asynchronously
}
具有 serial
属性的多个测试将确保按顺序执行。但是,测试的顺序没有保证。具有 parallel
属性的其他测试可以同时运行,但不能与具有 serial
属性的测试同时运行。没有属性的其他测试可以在任何时间运行,并且对其执行时间没有保证!两者都支持可选的键来定义要一起按顺序运行的测试子集,有关更多详细信息,请参阅文档。
对于像 doctests 和集成测试这样的案例,其中测试作为单独的进程运行,我们还支持 file_serial
,具有类似属性,但基于文件锁定。请注意,由于它们使用不同的方法锁定,因此对具有 serial
和具有 file_serial
的测试之间没有保证。
所有这些属性也可以应用于 mod
层级,并将自动应用于该块中的所有测试函数。
用法
此处支持的最小 Rust 版本是 1.68.2。请注意,这是一个最小 支持 版本,因为它可能很好地与较低版本编译,但它们根本不支持。升级到这个版本将需要版本号的重大跃升。如果需要比 1.x 支持的 1.51 更低的版本,则 1.x 支持 1.51。
将其添加到 Cargo.toml 中
[dev-dependencies]
serial_test = "*"
并在您的导入部分中添加 use serial_test::serial;
您可以根据需要,在测试中添加 #[serial]
或 #[serial(some_key)]
。
依赖项
~250–690KB
~16K SLoC