多项目构建:为每个子项目执行功能

时间:2019-10-14 12:00:39

标签: gradle junit junit5

我有这个文件夹结构:

  • project / subproject1
  • project / subproject2
  • project / subproject3
  • project / build.gradle(根配置)

每个子项目都有自己的build.gradle配置。 我在子项目1和3中进行了一些测试(子项目2不包含任何测试,我不确定我的问题是否需要此信息)。

我在测试中使用JUnit5。为了在构建项目时执行它们,我将其添加到子项目的每个build.gradle中。

tasks.test {
    useJUnitPlatform()
}

一切正常,所有测试都在执行,但是我不想触碰这个小片段的每个配置文件。我想要一些共同点。

我一直在尝试制作gradle-docs中的文档,但没有成功。

这就是我要在根目录build.gradle中添加的内容:

subprojects {
    tasks.test(){
        doLast {
            useJUnitPlatform()
        }
    }
}

但是它要么说已经定义了“测试”,要么类似“无法在类型为org.gradle.api.internal.tasks.DefaultTaskContainer的任务集上为参数[buildClosure]找到方法test()。” >

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

在project / build.gradle中设置以下内容

subprojects {
   apply plugin : 'java'
   test.useJUnitPlatform()
}

现在,在根项目中将测试任务配置为对其所有子项目使用junit5。注意,“ java”插件也适用于子项目。现在,任何子项目都已在根项目级别本身进行了预先配置。

答案 1 :(得分:0)

您一直在想太复杂了。更容易。只需添加

subprojects {
    test {
        useJUnitPlatform()
    }
}

访问项目的顶级build.gradle文件。您可以(大部分)在此块中添加应在每个子项目中完成的任何事情。

相关问题