【问题标题】:Gradle: run test only when specific parameter is givenGradle:仅在给定特定参数时运行测试
【发布时间】:2019-10-17 09:18:59
【问题描述】:

我只想在进行 PR 构建时运行特定的单元测试。 在此构建期间,我可以传递一个参数,例如。 'buildType' 指定它是一个 PR 构建。

如果 buildType 不是明确的 PR 构建,则测试不应该运行。

我怎样才能实现这种行为?

我是否创建可以以某种方式配置的单独任务。还是我什至要创建另一个模块?

【问题讨论】:

    标签: java unit-testing testing gradle


    【解决方案1】:

    实际排除取决于您使用的测试库。例如使用JUnit5,您可以使用tags 执行此操作。

    您首先要从正常的测试任务中排除带有@Tag("PR") 标记的测试。然后,您将定义特定任务,例如 prTest,其中还包括带有 @Tag("PR") 标记的测试。

    test {
        useJUnitPlatform {
            excludeTags 'PR'
        }
    }
    
    task prTest(type: Test) {
        useJUnitPlatform {
            includeTags 'PR'
        }
        shouldRunAfter test
    }
    

    【讨论】:

    • 不错。我想./gradlew prTest test 将在测试后运行 prTest 任务
    • 是的。除非有circular dependency等问题。
    猜你喜欢
    • 2018-07-20
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2020-05-30
    • 2018-03-14
    • 2011-07-01
    相关资源
    最近更新 更多