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

标签 gradle junit junit5

我有这个文件夹结构:

  • 项目/ subproject1
  • project / subproject2
  • project / subproject3
  • 项目/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()。

    任何帮助表示赞赏!

    最佳答案

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

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

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

    关于gradle - 多项目构建:为每个子项目执行功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376340/

    相关文章:

    java - 使用 netbeans 6.9.1 调试 Maven 测试?

    java - Maven 在运行时不运行@BeforeEach 方法

    java - 如何使用 JUnit 或 Mockito 测试使用 Random() 的方法(不带参数和返回值)

    android - Gradle Sync 在 Android Studio 3.0 Canary 5 中失败

    unit-testing - Gradle Task失败,因为JSHint检测到代码方面的改进

    android - 添加播放服务库后出错 : ':app:transformClassesWithJarMergingForDebug'

    gradle - 我想问你一个关于Android Gradle Build Error的问题

    java - JUnit 测试方法,测试 add 方法的一个特性

    java - EasyMock - request.getSession 为空

    junit5 - JUnit 5 @Theory 和@DataPoint