声纳未检查 Android 项目中的测试 类
Sonar not inspecting tests classes in Android project
我在包含多种风格的 android 项目中配置了声纳。 Sonar 工作正常,只是它没有在我的应用程序中显示测试覆盖率。我在 gradle 文件中这样设置声纳属性:
property "sonar.language", "java"
property "sonar.sources", "src"
property "sonar.test", "src/test, src/androidTest/java"
property "sonar.binaries", "build"
property "sonar.jacoco.reportPath", "build/jacoco/testDebugUnitTest.exec"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.junit.reportsPath", "build/test-results/Debug"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
正如我所说,我有很多口味,在 build/intermediates/classes
下,我有每个口味的文件夹和测试文件夹。
注意:相同的配置在没有任何味道的项目中工作!
请添加这些属性:
sonarProperties {
property "sonar.host.url", "http://sonar.someserver.int"
property "sonar.jdbc.url", "jdbc:mysql://sonar.someserver.int:3306/sonar"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "*****"
property "sonar.jdbc.password", "*****"
//I added these properties to my gradle.build
property "sonar.projectKey", "GradleAndroidTest"
property "sonar.projectName", "GradleAndroidTest"
property "sonar.projectVersion", "V1.0"
property "sonar.language", "java"
property "sonar.sources", "src"
property "sonar.binaries", "build"
}
并删除 sonar 插件并改用 sonar-runner 插件。
问题出在二进制路径上。我必须指定具有特定风格的路径。就我而言:
sonarqube {
//noinspection GroovyAssignabilityCheck
properties {
//...
property "sonar.binaries", "build/intermediates/classes/qa/debug"
property "sonar.java.binaries", "build/intermediates/classes/qa/debug"
property "sonar.java.test.binaries", "build/intermediates/classes/qa/debug"
//...
}
}
其中 qa 是我的风格,debug 是构建配置。
我在包含多种风格的 android 项目中配置了声纳。 Sonar 工作正常,只是它没有在我的应用程序中显示测试覆盖率。我在 gradle 文件中这样设置声纳属性:
property "sonar.language", "java"
property "sonar.sources", "src"
property "sonar.test", "src/test, src/androidTest/java"
property "sonar.binaries", "build"
property "sonar.jacoco.reportPath", "build/jacoco/testDebugUnitTest.exec"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.junit.reportsPath", "build/test-results/Debug"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
正如我所说,我有很多口味,在 build/intermediates/classes
下,我有每个口味的文件夹和测试文件夹。
注意:相同的配置在没有任何味道的项目中工作!
请添加这些属性:
sonarProperties {
property "sonar.host.url", "http://sonar.someserver.int"
property "sonar.jdbc.url", "jdbc:mysql://sonar.someserver.int:3306/sonar"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "*****"
property "sonar.jdbc.password", "*****"
//I added these properties to my gradle.build
property "sonar.projectKey", "GradleAndroidTest"
property "sonar.projectName", "GradleAndroidTest"
property "sonar.projectVersion", "V1.0"
property "sonar.language", "java"
property "sonar.sources", "src"
property "sonar.binaries", "build"
}
并删除 sonar 插件并改用 sonar-runner 插件。
问题出在二进制路径上。我必须指定具有特定风格的路径。就我而言:
sonarqube {
//noinspection GroovyAssignabilityCheck
properties {
//...
property "sonar.binaries", "build/intermediates/classes/qa/debug"
property "sonar.java.binaries", "build/intermediates/classes/qa/debug"
property "sonar.java.test.binaries", "build/intermediates/classes/qa/debug"
//...
}
}
其中 qa 是我的风格,debug 是构建配置。