Gradle跳过jacoco覆盖插件

时间:2017-06-14 19:38:38

标签: gradle jacoco

我知道在stackexchange上有很多类似的问题,但这让我很生气,没有任何其他答案对我有帮助。我已经使用了几乎所有力量标志,我可以找到它。

我的Gradle版本是2.2.1

我的build.gradle

buildscript {
ext {
    springBootVersion = '1.5.3.RELEASE'
}
repositories {
    mavenCentral()
}
dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    classpath("se.transmode.gradle:gradle-docker:1.2")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'application'
apply plugin: 'docker'
apply plugin: 'jacoco'

version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
  mavenCentral()
}


ext {
  springCloudVersion = 'Dalston.RELEASE'
}

test {
  include 'src/test/java'
  finalizedBy jacocoTestReport
}

jacocoTestReport {
   reports {
     xml.enabled true
     csv.enabled false
     html.enabled false
     xml.destination "${buildDir}/jacoco"
 }  
}
dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  }
}

当我运行gradle testgradle clean test jacocoTestReportgradle clean --re-run等时,我会得到相同的结果。

gradle test
:compileJava
:processResources
:classes
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test UP-TO-DATE
:jacocoTestReport SKIPPED

我在src / test / java位置只有一个测试。

为什么不生成报告并运行?我不知所措。

1 个答案:

答案 0 :(得分:1)

在测试配置中删除错误的include语句。

这似乎导致测试任务始终是最新的(不执行任何测试,因为包含模式不匹配)

如果生成报告所需的jacocoTestReport没有execution data,则会跳过execution data。执行test任务时应生成此test。在您的示例中,我们看到jacocoTestReport任务始终标记为最新(因为包含无效的include语句),导致构建永远不会为-keep任务生成任何输入。