7

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

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

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

如果重要,测试是 JUnit 测试。

4

3 回答 3

2

testNG(Junit 替代品,也受 gradle 支持)还允许您控制测试顺序。有关更多详细信息,请参阅此帖子

于 2013-12-05T23:10:00.507 回答
2

对的,这是可能的。一种可能性是为测试 Y 运行创建附加任务

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

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

test.dependsOn YTest
于 2013-10-23T21:31:33.597 回答
2

根据彼得在 gradle 论坛上的回应,这是不可能的。

http://forums.gradle.org/gradle/topics/can_gradle_run_two_tests_in_a_specific_desired_order_in_the_same_jvm?utm_content=reply_link&utm_medium=email&utm_source=reply_notification#reply_13187620

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

于 2013-10-25T15:09:14.523 回答