我们有两个不同的测试类(每个类都包含多个测试方法),它们在并行运行和在同一个 jvm 进程中时可能会相互影响。我知道这听起来很糟糕,但目前我们没有简单的解决方案来分离这两个测试类。
如何指定这两个测试类的运行顺序(使它们按顺序运行)而我仍然希望使用 gradle --parallel 并行执行测试?非常感谢。
[更新]:
我有以下配置
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 中实际运行的,从日志来看,似乎没有
这方面的相关信息?谢谢
最佳答案
根据Gradle documentation测试总是在单独的 jvm 进程中运行。因此,当两个测试在不同的项目中并并行运行时,您应该没有问题。
如果它们在同一个项目中,它们不应该并行运行,因为 gradle 只并行构建不同的项目,但每个项目本身都是顺序的(尤其是测试)。
在这两种情况下,你都应该没问题。
如果您想并行化您的测试,您可以查看 TestNG ,它支持并行测试和依赖项。转换通常不会耗时,基本上修复所有导入(注释名称相同)并使用测试创建和 xml 套件文件。
关于junit - 在使用 gradle --parallel 运行测试时按顺序运行两个测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17667545/