使用Gradle 5.X在Azure DevOps上生成代码覆盖率报告

时间:2019-10-15 15:42:06

标签: gradle azure-devops jacoco

我正在尝试将我的项目升级到Gradle 5.6.2。我在Azure DevOps上运行的任务之一是:

- task: Gradle@2
  displayName: 'Test Project'
  inputs:
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx7000m'
    sonarQubeRunAnalysis: true
    sonarQubeGradlePluginVersion: 2.6.2
    testRunTitle: $(DISPLAY_NAME)
    codeCoverageToolOption: JaCoCo
    publishJUnitResults: true
    testResultsFiles: '**/build/test-results/test/TEST-*.xml'
    tasks: "test -Dtest.profile=unit --parallel"

升级到Gradle 5.6.2后,运行代码覆盖率报告时出现以下错误:

  

在类型为destination()的报表html上找不到参数[/ home / vsts / work / 1 / s / batch / build / jacocoHtml]的方法org.gradle.api.reporting.internal.TaskGeneratedSingleDirectoryReport

根据this answer,对Gradle 5.X中的报告API进行了一些更改。 Azure Devops上使用的JaCoCo版本是否与Gradle 5.X不兼容?如果是这样,我有什么可以做的吗?

1 个答案:

答案 0 :(得分:4)

  

对Gradle 5.X中的报告API进行了一些更改,用于Azure Devops的JaCoCo版本是否与Gradle 5.X不兼容?

请参阅以下提取请求:JaCoCo compatible with gradle 5.x。上个月,由于Gradlesee this changes)中的功能已更改,我们提出了拉动请求以改进Gradle 5.x任务脚本:

enter image description here

此外,PR已成功合并。简而言之,对于我们的Gradle任务,Jacoco版本与Gradle 5.x兼容,后者已经升级了新语法。

为解决您的问题,我建议您最好遵循有问题的链接中的解决方案,以确保build.gradle文件的脚本类似于以下格式:

    destination file("$xx/xxx/xx.xml")

此外,您可以选中此thread