JUnit5 Gradle 插件覆盖默认构建任务

JUnit5 Gradle plugin overrides the default build task

我正在使用 JUnit 5 Gradle 插件,如下所述: http://junit.org/junit5/docs/current/user-guide/#running-tests-build-gradle

我将以下部分添加到我的 gradle.build 文件中:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.3'
    }
}

plugins {
    id 'java'
    id 'application'
    // ... some others...
}

apply plugin: 'org.junit.platform.gradle.plugin'

dependencies {
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.3'
    testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.0.3'
}

根据以上内容,当我使用 gradle build 任务时 - 我有以下输出:

Executing task 'build'...

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:findMainClass
:startScripts UP-TO-DATE
:distTar
:distZip
:bootRepackage
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:junitPlatformTest UP-TO-DATE
:test SKIPPED
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

因为这包括 junitPlatformTest 我假设插件会覆盖常规 build 任务。我想知道是否有任何方法可以避免这种行为。

插件不会覆盖 build 任务。它将 test 任务的依赖项添加到 junitPlatformTest 任务,并且(默认情况下)禁用标准 test 任务(以避免多次执行基于 JUnit 4 的测试)。

build 取决于 checkassemblecheck 取决于 test(参见 Gradle User Manual)。因此,当您执行 build 时,junitPlatformTest 将按照您的示例执行。