如何在多模块项目中为单独的测试标签配置gradle任务?

时间:2019-07-22 15:37:37

标签: gradle gradle-kotlin-dsl kotlin-dsl

我有一个给定的多项目结构:

root
    sub1
    sub2
    sub3

我想以某种方式在根目录下配置所有使用java的项目具有2个单独的任务: 1.单元测试 2.集成测试

每个仅运行具有给定标记的junit5测试(所有源均在src / test / java下,仅通过@Tag进行区分)。

这些项目的“测试”任务也应该作为这两个项目的总和执行(应同时取决于UT和IT任务)。我使用kotlin DSL进行gradle配置。

我尝试将其配置为:

subprojects {
    version = "1.0-SNAPSHOT"

    val utTask = tasks.create<Test>("unit-test") {
        group = LifecycleBasePlugin.VERIFICATION_GROUP

        useJUnitPlatform {
            includeTags("unit-test")
        }
    }

    val itTask = tasks.create<Test>("integration-test") {
        group = LifecycleBasePlugin.VERIFICATION_GROUP

        useJUnitPlatform {
            includeTags("integration-test")
        }
    }

    tasks.named("test") {
        dependsOn(utTask)
        dependsOn(itTask)
    }
}

在sub1模块中,我的配置如下:

plugins {
    java
}

dependencies {
// some dependencies here
}

Gradle给出了错误提示:

  

在项目':sub1'中找不到名称为'test'的任务。

理想情况下,也应该仅对那些应用了'java'插件的用户进行配置(因此请不要配置非Java模块,即js UI的模块)。

提前谢谢

0 个答案:

没有答案