Java 将coverage.ec文件上载到sonar Android
我有一个coverage.ec文件,它会生成并显示我的espresso UI测试的代码覆盖率。我还在gradle中配置了声纳,如下所示:Java 将coverage.ec文件上载到sonar Android,java,android,android-gradle-plugin,sonarqube,sonarqube-scan,Java,Android,Android Gradle Plugin,Sonarqube,Sonarqube Scan,我有一个coverage.ec文件,它会生成并显示我的espresso UI测试的代码覆盖率。我还在gradle中配置了声纳,如下所示: sonarqube { properties { property "sonar.projectName", "Android 9" property "sonar.projectKey", "org.sonarqube:Android9" property "sonar.host.url", "http://localhost:90
sonarqube {
properties {
property "sonar.projectName", "Android 9"
property "sonar.projectKey", "org.sonarqube:Android9"
property "sonar.host.url", "http://localhost:9000"
property "sonar.username", "admin"
property "sonar.password", "password"
property "sonar.projectVersion", "5"
property "sonar.java.source", "7"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
property "sonar.sourceEncoding","UTF-8"
property "sonar.sources","src/main/java"
property "sonar.exclusions","build/**,**/*.png"
property "sonar.test.exclusions", ""
property "sonar.binaries", "build/classes"
property "sonar.jacoco.reportPath","build/jacoco/testDevDebugUnitTest.exec"
property "sonar.tests", "src/androidTest/java"
//property "sonar.import_unknown_files", true
//property "sonar.android.lint.report", "./build/outputs/lint-results.xml"
property "sonar.jacoco.itReportPath", "build/outputs/code-coverage/connected/flavors/NORMAL/*.ec"
}}
有问题吗?sonar中根本没有显示代码覆盖率-没有,0%,这真的很奇怪,在过去的一周里,我一直在网上搜索,没有发现任何东西。有人知道发生了什么吗?你必须指定测试结果,才能让声纳处理你的覆盖范围。 还请注意,
sonar.jacoco.itReportPath
已经过时。现在,所有覆盖范围文件都使用sonar.jacoco.reportpath
属性指定
您也不必手动指定源目录。请参见androidTest
属性
下面是一个既有测试(如Robolectric)又有android测试(如Espresso)的项目的配置
我想出来了。我的reportPath没有使用*.ec,而是将其更改为“coverage.ec”。然后它出现了。谢谢你们的帮助 你在服务器上使用什么版本的声纳?sonar.jacoco.itReportPath根据
afterEvaluate {
def flavor = "DEV"
def variant = "devDebug"
def testTaskName = "test${variant.capitalize()}UnitTest"
// output both android and host test results to single directory
def junitReportsPath = "build/outputs/androidTest-results/connected/flavors/$flavor/"
project.tasks[testTaskName].reports.junitXml.destination = junitReportsPath
sonarqube {
// you don't have to specify these manually as android sonar plugin handles it
// as soon as you specify androidVariant
// property "sonar.sources","src/main/java"
// property "sonar.tests", "src/androidTest/java"
androidVariant variant
properties {
property "sonar.jacoco.reportPaths",
["build/jacoco/${testTaskName}.exec",
"build/outputs/code-coverage/connected/flavors/$flavor/*.ec"]
property "sonar.junit.reportsPath", junitReportsPath
// other settings
// ...
}
}
}