Junit 顺序运行两个测试类,同时使用gradle--parallel运行测试

Junit 顺序运行两个测试类,同时使用gradle--parallel运行测试,junit,gradle,Junit,Gradle,我们有两个不同的测试类(每个测试类包含多个测试方法),它们在并行运行和在同一jvm进程中时可能会相互影响。我知道这听起来很糟糕,但目前我们没有简单的解决方案来分离这两个测试类 在我仍然希望使用gradle--parallel执行并行测试时,如何指定这两个测试类的运行顺序(使它们按顺序运行)?先谢谢你 [更新]: 我有以下配置 test { // maxParallelForks=8 testLogging.showStandardStreams=true exclude '**/ATe

我们有两个不同的测试类(每个测试类包含多个测试方法),它们在并行运行和在同一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中,从日志来看,似乎没有 相关信息?谢谢,根据测试,测试总是在一个单独的jvm进程中运行。因此,当两个测试在不同的项目中并并行运行时,您应该没有问题

如果它们在同一个项目中,就不应该并行运行,因为gradle只并行地构建不同的项目,而每个项目本身是连续的(尤其是测试)

在这两种情况下,你都应该很好


如果你想并行化你的测试,你可以看看,它支持并行测试和依赖关系。转换通常并不耗时,基本上修复所有导入(注释名称相同)并使用测试创建xml套件文件。

问题与并行任务或测试执行无关(顺便说一下,这是独立的Gradle功能),因为Gradle在每个测试JVM的单个线程中运行测试。问题很简单,多个测试访问同一个单例,并使彼此对该对象初始状态的期望无效。可能的解决办法:

  • 使每个受影响的测试将单例重置为已知状态
  • 确保每个受影响的测试由不同的
    test
    任务执行(因此在不同的测试JVM中运行)
  • 摆脱单身汉

谢谢您的回复。在我们的例子中,这两个测试确实在同一个项目中。我不熟悉gradle的内部结构,但是从日志中,我们可以确定这两个测试是相互影响的。我们有一个可以全局访问的伴生对象(我们使用的是scala),两个测试都会覆盖其中的一些字段,因此我们得到了一些意外的行为。执行顺序可能是问题所在吗?我从来没有在Scala中做过任何编码,所以我想这就是我能帮助你的地方。无论如何,非常感谢。我试图找到其他解决方案,例如,有没有办法指定junit测试类之间的运行时依赖关系,比如说,通过一些注释?一个快速的谷歌没有找到答案。你在这个问题上是绝对正确的。由于这两个测试类位于同一个项目中,我们如何配置它们以使它们在不同的测试任务中运行?你能提供一些例子吗?非常感谢lotHi Peter,你能看看我在上述[更新]中的进一步问题吗?感谢洛蒂特始终保证单独的测试任务使用单独的测试JVM。你不必检查它。