如何顺序运行货物测试?

问题描述 投票:0回答:2

proxy/v1_specific
下有多项测试。我必须按顺序运行它们,因为这些测试相互之间有一些影响。

cargo test --package tests --test proxy v1_specific::test1
cargo test --package tests --test proxy v1_specific::test2
cargo test --package tests --test proxy v1_specific::test3

我想知道是否有一些神奇的论点

--magic=level

cargo test --package tests --test proxy v1_specific --magic=1
# Equivalence
cargo test --package tests --test proxy v1_specific::test1
cargo test --package tests --test proxy v1_specific::test2
cargo test --package tests --test proxy v1_specific::test3

cargo test --package tests --test proxy v1_specific --magic=2
# Equivalence
cargo test --package tests --test proxy v1_specific::test1::subtest1
cargo test --package tests --test proxy v1_specific::test1::subtest2
cargo test --package tests --test proxy v1_specific::test2::subtest1
cargo test --package tests --test proxy v1_specific::test3::subtest1

我知道

--job=1
,我可以按顺序运行它们。但是,我可能希望
v1_specific::test1
中的所有子测试并行运行。

rust rust-cargo
2个回答
2
投票

使用 --test-threads=1 或使用 Mutex 手动顺序运行该函数。


0
投票

我使用serial_test

cargo add --dev serial_test

然后,对于您想要顺序运行的测试:

#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
#[serial]
async fn test_async_multi_threaded() {

或者,如果您只是运行普通的旧测试(我在这里包含了我的 tokio 示例,因为我花了一些时间来弄清楚如何指定线程池大小):

#[test]
#[serial]
async fn test_sync() {
© www.soinside.com 2019 - 2024. All rights reserved.