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 测试

Download history 377372/week @ 2024-04-17 399356/week @ 2024-04-24 379033/week @ 2024-05-01 371774/week @ 2024-05-08 421708/week @ 2024-05-15 455212/week @ 2024-05-22 469778/week @ 2024-05-29 462070/week @ 2024-06-05 471479/week @ 2024-06-12 425858/week @ 2024-06-19 474480/week @ 2024-06-26 387872/week @ 2024-07-03 418358/week @ 2024-07-10 425152/week @ 2024-07-17 441129/week @ 2024-07-24 321800/week @ 2024-07-31

1,693,049 每月下载量
用于 795 个 Crates (9 个直接使用)

MIT 许可协议

31KB
616

serial_test

Version Downloads Docs MIT license Build Status MSRV: 1.68.2

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