【问题标题】:How to limit the number of test threads in Cargo.toml?如何限制 Cargo.toml 中的测试线程数?
【发布时间】:2017-12-10 09:39:29
【问题描述】:

我的测试共享一个公共资源并且不能同时执行。这些测试使用cargo test 失败,但使用RUST_TEST_THREADS=1 cargo test

我可以修改测试以等待全局互斥锁,但如果有任何更简单的方法可以强制 cargo 为我设置此环境变量,我不想弄乱它们。

【问题讨论】:

  • 尽管我很喜欢重复,但这似乎不是“有什么方法可以告诉 Cargo 在主线程上运行测试吗?”的重复。这个问题专门询问是否有办法在文件系统中的某处设置线程数,以便不需要传递环境变量或命令行选项。对于那个问题,即使将线程数设置为 1 也不起作用,因为它仍然是与 main 分开的线程。
  • 有一个open PR 建议向测试运行器添加一个类似#[serial] 的属性,这将导致标记的测试无法并行运行,但任何人都猜测这是否会被接受。

标签: testing rust rust-cargo


【解决方案1】:

从 Rust 1.18 开始,没有这样的东西。事实上,甚至没有更简单的选项来禁用并行测试。
Source

但是,cargo test -- --test-threads=1 可能对您有所帮助,这是在 RUST_TEST_THREADS envvar 上执行您正在执行的操作的推荐方式。请记住,这只会设置用于测试除了主线程的线程数。

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 2016-08-25
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2010-12-19
    相关资源
    最近更新 更多