我如何组织测试,以便他们的 OneTimeSetUps 在其他人的 OneTimeTearDowns 完成后运行?测试需要相互冲突的设置,但所有 OneTimeSetUps 都是首先运行的,所以这是行不通的。
我做了一个小设置。 Foo 和 Bar 及其各自的 OneTimes 位于不同类的不同名称空间中,每个类都标有 [TestFixture]。这是运行的顺序:
FooOneTimeSetUp
BarOneTimeSetUp
Foo
FooOneTimeTearDown
Bar
BarOneTimeTearDown
原来我想要的是默认行为。但是,我正在从事的项目设置了
[assembly: Parallelizable(ParallelScope.Children)]
,这导致了我的问题中的不良行为,即使[assembly: LevelOfParallelism(1)]
也由跑步者类似地设置和执行。
这在此处的文档中有解释: https://docs.nunit.org/articles/nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html