我必须创建一个由Junit @Category
注释拆分的两个测试套件,以使测试能够针对“ dev-prod”和“ test”目录分别运行。我特别不喜欢这种解决方案,但是由于我正在处理的代码库的局限性,部分解决方案迫使我这样做。但是我现在有两个名为UsingProdDictionariesTestSuite
和UsingTestDictionariesTestSuite
的JUnit测试套件。
我创建了一套同时运行两个套件的整体套件UsingAllDictionariesTestSuite
。问题是它们必须单独运行,即我希望UsingTestDictionariesTestSuite
中的所有测试在启动UsingProdDictionariesTestSuite
之前完成...这就是首先将它们分开的全部原因。可以强制执行吗?
其背景如下, 使用系统环境变量来设置测试类,以说明测试应针对“ Dev-Prod”目录还是针对“ Test”目录运行。因为JUnit不允许您控制执行测试的顺序-我在尝试运行所有测试时遇到了失败的测试,因为针对Dev-Prod的某些测试是针对Test的设置执行的(并且反之亦然)。当我分别运行测试时,它们都可以通过。
我的套房套件类如下所示,并且运行正常,除了由于上述交叉执行而导致测试失败之外,
package testsuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({UsingTestDictionariesTestSuite.class,UsingProdDictionariesTestSuite.class})
public class UsingAllDictionariesTestSuite {
}