Java Gradle可以按特定顺序运行两个测试吗?

Java Gradle可以按特定顺序运行两个测试吗?,java,unit-testing,gradle,Java,Unit Testing,Gradle,我们正在将一些ant构建脚本迁移到gradle,并在此过程中诊断问题。出现的一个问题是,在CI服务器(jenkins运行gradle)上,我们偶尔会遇到测试失败。我们认为问题与测试执行顺序有关,因为失败的测试之一在某些库代码中使用了线程本地存储 我希望能够在修复损坏的测试之前在本地重现问题。然而。我不能在本地重现这个问题,因为gradle总是按照正常工作的顺序运行测试 那么,有没有办法强迫gradle在测试类Y之前运行测试类X?这些测试需要在同一个JVM中运行——一个测试接着一个测试 如果有关系

我们正在将一些ant构建脚本迁移到gradle,并在此过程中诊断问题。出现的一个问题是,在CI服务器(jenkins运行gradle)上,我们偶尔会遇到测试失败。我们认为问题与测试执行顺序有关,因为失败的测试之一在某些库代码中使用了线程本地存储

我希望能够在修复损坏的测试之前在本地重现问题。然而。我不能在本地重现这个问题,因为gradle总是按照正常工作的顺序运行测试

那么,有没有办法强迫gradle在测试类Y之前运行测试类X?这些测试需要在同一个JVM中运行——一个测试接着一个测试


如果有关系,测试是JUnit测试。

是的,这是可能的。其中一种可能性是为testy运行创建额外的任务

task YTest(type: Test) {
    include '**/Y.*'
}

test {
    exclude '**/Y.*'
}

test.dependsOn YTest

根据Peter在gradle论坛上的回复,这是不可能的


另一种方法是使用测试套件。

(Junit替代方案,也由gradle支持)还允许您控制测试顺序。有关更多详细信息,请参阅。

我相信它们将在两个不同的gradle“worker”中运行,因为它们是两个不同的测试任务,而不是同一个jvm实例。我需要它们在同一个jvm中。