依次运行某些测试,而其他并行运行

时间:2019-11-14 20:59:37

标签: unit-testing testing parallel-processing rust automated-tests

我有几个测试:

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn foo() {
        // Must be run sequentially
    }

    #[test]
    fn bar() {
        // Must be run sequentially.
    }

    #[test]
    fn baz() {
        // Can be run in parallel.
    }

    #[test]
    fn qux() {
        // Can be run in parallel.
    }
}

foo()bar()必须按顺序运行,因为它们可能会自行竞争或未显示其他测试。

我可以仅使用一个线程来测试cargo test -- --test-threads=1,以防止出现竞争情况。但是我不想这样做,因为我希望baz()qux()可以并行运行。

我还可以将#[ignore]属性放在foo()bar()上。调用cargo test并行调用baz()qux(),然后分别运行foo()bar(),但这是很多工作。

是否有任何方法可以确保foo()bar()依次运行,但是所有其他测试都与cargo test的一次调用并行运行?供参考,here是当前属性。

0 个答案:

没有答案