【问题标题】:Eclipse - Java - Gradle is skipping jacocoTestReportEclipse - Java - Gradle 正在跳过 jacocoTestReport
【发布时间】:2017-01-29 08:32:49
【问题描述】:

项目结构:

    src/main/java
    src/main/resources
    src/test/java

Gradle 版本:2.2.1

这是我的 build.gradle

    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'jacoco'
    version = '1.0'
   sourceCompatibility = 1.7
   targetCompatibility = 1.7

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

   }

  jacoco {
    toolVersion = "0.7.6.201602180812"

  }

 jacocoTestReport {
  group = "Reporting"
  description = "Generate Jacoco coverage reports after running tests."
  additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
  reports {
      xml.enabled false
      csv.enabled false
      html.destination "${buildDir}/reports/jacoco/html"
}
}

当我以“test jacocoTestReport”运行 gradle 任务时,我得到以下结果

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

有人可以建议应该添加什么来执行 jacoco 测试报告。

谢谢。

【问题讨论】:

    标签: java eclipse gradle jacoco


    【解决方案1】:

    仅当覆盖数据可用时,该任务才会运行。您还可以通过运行test 任务来确保这一点。

    来源 - Running jacocoReport

    【讨论】:

      【解决方案2】:

      我能够通过以下设置生成代码覆盖率结果。

       apply plugin: 'jacoco'
       jacocoTestReport {
         reports {
         xml.enabled false
         csv.enabled false
         html.destination "${buildDir}/jacocoHtml"
       }
      }
      

      【讨论】:

        【解决方案3】:

        你可以强制它运行:

        jacocoTestReport { 仅当 = { 真的 } }

        这可能会产生错误(首先它没有运行是有原因的),但错误应该会提供更多信息。

        【讨论】:

          【解决方案4】:

          不幸的是,这些答案都不适合我。
          对于 Spring 2.5 用户,他们坚持了几个小时 -就像我自己

          我遇到了类似的问题。
          我没有生成 exec 文件。
          正因为如此, 我发现 jacocoTestReport 只是“skipped”。

          我通过添加修复它

          test {
            useJUnitPlatform()
            finalizedBy jacocoTestReport // report is always generated after tests run
          }
          

          那是因为我使用 Junit5 和 spring boot 2.X - Gradle 7.1
          并且截至今天,测试任务中默认不调用 Junit5。

          【讨论】:

          • 终于!添加useJUnitPlatform() 对我有用。如果没有这个,我猜测试甚至都不会运行。
          【解决方案5】:

          聚会迟到了,但以上答案都没有为我解决。相反,改变

          dependencies {
              testCompile 'org.junit.jupiter:junit-jupiter-api:5.0.0-M2'
          }
          

          dependencies {
              testImplementation 'org.junit.jupiter:junit-jupiter:5.5.2'
          }
          

          工作就像一个魅力 (source)。

          【讨论】:

            猜你喜欢
            • 2022-08-03
            • 2015-05-19
            • 1970-01-01
            • 1970-01-01
            • 2017-10-07
            • 1970-01-01
            • 2010-12-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多