【问题标题】:Can Gradle run two tests in a specific order?Gradle 可以按特定顺序运行两个测试吗?
【发布时间】:2013-11-02 08:42:50
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java unit-testing gradle


    【解决方案1】:

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

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

    【讨论】:

    • 我相信这些将在两个不同的 gradle“worker”中运行,因为它们是两个不同的测试任务,而不是同一个 jvm 实例。我需要它们在同一个 jvm 中。
    【解决方案2】:
    【解决方案3】:

    testNG(Junit 的替代品,也受 gradle 支持)还允许您控制测试顺序。详情请见this post。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 2023-01-08
      • 2015-12-18
      • 2014-07-13
      • 2018-08-21
      • 2021-09-01
      • 2014-08-06
      相关资源
      最近更新 更多