![](/img/trans.png)
[英]How to fix sonarqube error “The Code Coverage report doesn't contain any coverage data for the included files”
[英]Test code gets included in coverage report and skews coverate rate
我在 Azure DevOps 管道中使用 OpenClover。
問題:雖然在target/site/clover/index.html
中給出的覆蓋率,當我在本地運行 clover 時,(可悲地)約為 45%,在 Azure DevOps 中為 71%。
原因是 AzDO 中基於target/site/clover.xml
的覆蓋率報告還包括測試代碼,通常覆蓋率為 100%,因此導致結果偏差。
如何擺脫包含測試代碼的覆蓋率報告? 我試圖無濟於事的是在 ReportGenerator 中使用classfilters
過濾器 - 它負責將 clover.xml 轉換為 Cobertura,以便 AzDO 可以解釋它。 以下都不起作用:
classfilters: '-*Test.java'
classfilters: '-*Test'
classfilters: '-*Test.class'
對於上下文,這是我的管道。
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx1024m'
mavenAuthenticateFeed: true
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
goals: 'clean clover:setup test clover:aggregate clover:clover'
- task: reportgenerator@4
inputs:
reports: '$(Build.SourcesDirectory)/target/site/clover/clover.xml'
classfilters: '-*Test'
targetdir: '$(Build.SourcesDirectory)/CoverageResults'
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Build.SourcesDirectory)/CoverageResults/Cobertura.xml'
這是與三葉草有關的 pom 文件的一部分:
<build>
<plugins>
<plugin>
<groupId>org.openclover</groupId>
<artifactId>clover-maven-plugin</artifactId>
<version>4.4.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>instrument</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在filefilters
任務中使用文件過濾器而不是classfilters
過濾器有效:
- task: reportgenerator@4
inputs:
reports: '$(Build.SourcesDirectory)/target/site/clover/clover.xml'
filefilters: '-*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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.