2013-10-23 155 views
3

我们正在将一些ant构建脚本迁移到gradle,并且一直在诊断问题。出现的一个问题是,在CI服务器上(jenkins运行gradle),我们偶尔会遇到测试失败。我们认为该问题与测试执行顺序有关,因为其中一个失败的测试在某些库代码中使用线程本地存储。Gradle可以按特定顺序运行两个测试吗?

我希望能够在修复破损的测试之前在本地重现问题。然而。我无法在本地重现问题,因为gradle总是按照恰好工作的顺序运行测试。

那么,有没有办法强制gradle在测试类Y之前运行测试类X?测试需要在同一个JVM中运行 - 一个接一个地测试。

万一它很重要,测试是JUnit测试。

回答

1

是的,这是可能的。其中一个可能性是创建测试Y的额外任务运行

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

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

test.dependsOn YTest 
+0

我相信这些将运行在两个不同的gradle“工作者”上,因为他们是两个不同的测试任务而不是相同的jvm实例。我需要他们在同一个jvm。 – clucas

1

testNG(一个Junit的替代品,也支持gradle)也允许你控制测试顺序。有关更多详细信息,请参见this post

相关问题