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

时间:2018-01-29 09:59:33

标签: java unit-testing gradle plugins junit5

我正在使用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任务。我想知道是否有办法避免这种行为。

1 个答案:

答案 0 :(得分:3)

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

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