gradle - Jacoco-不排除文件
问题描述
我正在使用 Gradle 和 Jacoco。这是我的build.gradle
:
jacocoTestReport {
reports {
xml.enabled true
csv.enabled false
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it, exclude: [
'**/TrackingDataRecord.java'
])
})
}
}
test.finalizedBy(project.tasks.jacocoTestReport)
我试图排除该 java 文件,但它仍然显示 SonarQube 的覆盖范围。这是为什么?
解决方案
Gradle 任务jacocoTestReport
通过分析 JaCoCoexec
文件和 Javaclass
文件生成 XML/HTML/CSV 报告。
SonarQube 不使用 Gradle 任务生成的报告,而是通过分析 JaCoCo文件和 Java文件jacocoTestReport
来生成自己的报告- 作为来自https://docs.sonarqube.org/display/PLUG/Code+Coverage+by的证明引用+单元+测试+for+Java+项目:exec
class
| Property | Example | Description | sonar.jacoco.reportPaths | target/jacoco.exec | Import JaCoCo code coverage reports. Set the property to the path of the JaCoCo .exec
这可能会在未来发生变化,SonarQube 可能会开始导入 XML 报告 - 请参阅https://jira.sonarsource.com/browse/MMF-1362
关于 SonarQube 中的排除项,请参阅https://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus:
忽略代码覆盖率
您可以防止某些文件被单元测试考虑到代码覆盖率。
为此,请转到 Administration > General Settings > Analysis Scope > Code Coverage 并设置 Coverage Exclusions 属性。
推荐阅读
- windows - 用于复制和重命名文件的自动化脚本或程序
- vba - VBA Query - Compare a string with the value of 2 rows
- reporting-services - 文本格式的 ssrs 日期列,但是当我导出到 excel 时,它应该按日期排序
- python - 防止机器人断开用户与正常语音通道的连接?
- laravel - hasMany 关系中的自定义外键和本地键:Laravel
- php - TripAdvisor Content API - 列出 10 多个对象
- google-app-engine - Google Cloud:如何在一段时间后从个人帐户类型切换到公司帐户类型?
- python - 烧瓶网络服务器从客户端获取数据,但无法保存
- python - Jupyter Notebook 中的全局行号
- gpu - 如何在 OpenCL 中生成高斯分布的随机数?