Junit 顺序运行两个测试类,同时使用gradle--parallel运行测试
我们有两个不同的测试类(每个测试类包含多个测试方法),它们在并行运行和在同一jvm进程中时可能会相互影响。我知道这听起来很糟糕,但目前我们没有简单的解决方案来分离这两个测试类 在我仍然希望使用gradle--parallel执行并行测试时,如何指定这两个测试类的运行顺序(使它们按顺序运行)?先谢谢你 [更新]: 我有以下配置Junit 顺序运行两个测试类,同时使用gradle--parallel运行测试,junit,gradle,Junit,Gradle,我们有两个不同的测试类(每个测试类包含多个测试方法),它们在并行运行和在同一jvm进程中时可能会相互影响。我知道这听起来很糟糕,但目前我们没有简单的解决方案来分离这两个测试类 在我仍然希望使用gradle--parallel执行并行测试时,如何指定这两个测试类的运行顺序(使它们按顺序运行)?先谢谢你 [更新]: 我有以下配置 test { // maxParallelForks=8 testLogging.showStandardStreams=true exclude '**/ATe
test {
// maxParallelForks=8
testLogging.showStandardStreams=true
exclude '**/ATests.scala'
exclude '**/BTests.scala'
}
task runATests(type: Test) {
include '**/ATests.scala'
}
task runBTests(type: Test) {
include '**/BTests.scala'
}
我如何验证ATests和BTests是否实际运行在不同的测试JVM中,从日志来看,似乎没有
相关信息?谢谢,根据测试,测试总是在一个单独的jvm进程中运行。因此,当两个测试在不同的项目中并并行运行时,您应该没有问题
如果它们在同一个项目中,就不应该并行运行,因为gradle只并行地构建不同的项目,而每个项目本身是连续的(尤其是测试)
在这两种情况下,你都应该很好
如果你想并行化你的测试,你可以看看,它支持并行测试和依赖关系。转换通常并不耗时,基本上修复所有导入(注释名称相同)并使用测试创建xml套件文件。问题与并行任务或测试执行无关(顺便说一下,这是独立的Gradle功能),因为Gradle在每个测试JVM的单个线程中运行测试。问题很简单,多个测试访问同一个单例,并使彼此对该对象初始状态的期望无效。可能的解决办法:
- 使每个受影响的测试将单例重置为已知状态
- 确保每个受影响的测试由不同的
任务执行(因此在不同的测试JVM中运行)test
- 摆脱单身汉