Я пытаюсь настроить отчеты sonarqube в моем проекте Android. В настоящее время у меня возникают проблемы с отображением всех тестовых классов в пользовательском интерфейсе сонара, охват показан в процентах, и в настоящее время только модульные тесты от app/src/test/
показаны в качестве единиц измерения.sonarqube с androidTest и тест covarage
У моего проекта есть тестовая папка app/src/test/
, которая содержит модульный тест, и у меня есть папка androidTest app/src/androidTest/
, которые содержат андроид, интеграцию и тесты пользовательского интерфейса. Когда я запускаю все тесты с помощью градиента, плагин 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, показанный как Unit Test на приборной панели. Есть ли способ заставить плагин сонара выглядеть в обоих каталогах или объединить результаты вместе?
Хотя это может добавить тест UI в список тестов SonarQube, он не увеличивает ваш охват% или указывает, что методы покрыты. Любое решение для этого? – Elias
@Elias Если вы используете Jacoco для оснастки и покрытия кода, вы настроены, потому что более новые версии Sonarqube объединяют данные покрытия Jacoco с тестов единиц и контрольно-измерительных приборов. Однако я не знаю, что это возможно для других плагинов для покрытия. –
Мы находимся на SonarQube v6, который, я полагаю, является последним? Я передаю эти свойства: свойства "sonar.java.coveragePlugin", "jacoco" свойства "sonar.jacoco.reportPath", "построить/jacoco/testProductionMinSdk19DebugUnitTest.exec" // Отчет покрытия JUnit недвижимости «sonar.junit. reportsPath "," build/test-results/productionMinSdk19Debug/"// путь к отчетам юнита свойство" sonar.android.lint.report "," /build/outputs/lint-results-productionMinSdk19Debug.xml "// путь к lint доклад – Elias