Azure devops 测试代码被包含在覆盖率报告中,并影响覆盖率
我正在Azure DevOps管道中使用OpenClover 问题是:Azure devops 测试代码被包含在覆盖率报告中,并影响覆盖率,azure-devops,azure-pipelines,cobertura,clover,reportgenerator,Azure Devops,Azure Pipelines,Cobertura,Clover,Reportgenerator,我正在Azure DevOps管道中使用OpenClover 问题是:target/site/clover/index.html中给出的覆盖率,当我在本地运行clover时(很遗憾)大约是45%,而在Azure DevOps中是71% 原因是AzDO中基于target/site/clover.xml的覆盖率报告还包括测试代码,测试代码的覆盖率通常为100%,从而扭曲了结果 如何使覆盖率报告不包含测试代码?我尝试过的是在ReportGenerator中使用classfilters,ReportGe
target/site/clover/index.html
中给出的覆盖率,当我在本地运行clover时(很遗憾)大约是45%,而在Azure DevOps中是71%
原因是AzDO中基于target/site/clover.xml
的覆盖率报告还包括测试代码,测试代码的覆盖率通常为100%,从而扭曲了结果
如何使覆盖率报告不包含测试代码?我尝试过的是在ReportGenerator中使用classfilters
,ReportGenerator负责将clover.xml转换为Cobertura,以便AzDO能够解释它。以下两项都不起作用:
classfilters: '-*Test.java'
classfilters: '-*Test'
classfilters: '-*Test.class'
作为上下文,这里是我的管道
-任务:Maven@3
投入:
mavenPomFile:'pom.xml'
mavenOptions:'-Xmx1024m'
mavenAuthenticateFeed:true
javaHomeOption:'JDKVersion'
jdkVersionOption:'1.11'
JDK体系结构选项:“x64”
结果:错误
目标:“清洁三叶草:设置测试三叶草:聚合三叶草:三叶草”
-任务:reportgenerator@4
投入:
报告:“$(Build.SourcesDirectory)/target/site/clover/clover.xml”
类过滤器:'-*测试'
targetdir:“$(Build.SourcesDirectory)/CoverageResults”
-任务:PublishCodeCoverageResults@1
displayName:“发布代码覆盖率”
投入:
codeCoverageTool:Cobertura
summaryFileLocation:“$(Build.SourcesDirectory)/CoverageResults/Cobertura.xml”
这是pom文件中与clover相关的部分:
org.openclover
clover maven插件
4.4.1
生成源
仪器
在ReportGenerator任务中使用文件过滤器
而不是类过滤器
:
-任务:reportgenerator@4
投入:
报告:“$(Build.SourcesDirectory)/target/site/clover/clover.xml”
文件过滤器:'-*Test.java'
targetdir:“$(Build.SourcesDirectory)/CoverageResults”
从ReportGenerator 4.6.4中,可以排除没有(脆弱)文件过滤器的测试项目
- task: reportgenerator@4
inputs:
reports: '$(Build.SourcesDirectory)/target/site/clover/clover.xml'
customSettings: 'settings:excludeTestProjects=true'
targetdir: '$(Build.SourcesDirectory)/CoverageResults'