【发布时间】:2016-09-13 19:11:22
【问题描述】:
我正在尝试在我的 Android 项目中设置 sonarqube 报告。我目前无法在声纳 UI 中显示所有测试类,覆盖率以百分比显示,目前只有来自 app/src/test/ 的单元测试显示为单元测试。
我的项目有一个测试文件夹app/src/test/,其中包含单元测试,我有一个androidTest 文件夹app/src/androidTest/,其中包含android 单元、集成和UI 测试。当我通过 gradle 运行所有测试时,android-gradle 插件会生成 build/jacoco/testDebugUnitTest.exec 和 build/test-results/debug/TEST-*Test.xml,其中包含测试文件夹中单元测试的 jacoco 结果和覆盖率报告。 android-gradle 插件还会生成 build/outputs/code-coverage/connected/coverage.ec 和 build/outputs/androidTest-results/connected/TEST-*Test.xml 包含来自 androidTest 文件夹的结果和覆盖率报告
在我的 build.gradle 中,我可以指定声纳插件的属性。
sonarqube {
properties {
property "sonar.sources", "src/main/java,src/main/res"
property "sonar.tests", "src/test/java,src/androidTest/java"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/testDebugUnitTest.exec"
property 'sonar.jacoco.itReportPath', "${project.buildDir}/outputs/code-coverage/connected/coverage.ec"
property "sonar.junit.reportsPath", "${project.buildDir}/test-results/debug" // path to junit reports
}
}
使用sonar.junit.reportsPath,我可以指定将哪个 xml 报告发送到 sonarqube 服务器。当我将其更改为build/outputs/androidTest-results/connected 时,我得到的 androidTest 在仪表板上显示为单元测试。有没有办法让声纳插件同时查看两个目录或将结果合并在一起?
【问题讨论】:
标签: android unit-testing gradle sonarqube jacoco