SonarCloud показывает покрытие для тестового класса, хотя тестовые классы исключены

Я настроил анализ SonarCloud для проекта Java, который запускает анализ при создании PR в репозитории git.

Команда для запуска проверки в моем .travis.yml файле:

mvn clean compile test dependency:copy-dependencies
sonar-scanner 
-Dsonar.projectKey=project-key 
-Dsonar.java.binaries=project/target/classes 
-Dsonar.java.test.binaries=project/target/test-classes 
-Dsonar.java.libraries=project/target/dependency 
-Dsonar.java.test.libraries=project/target/dependency 
-Dsonar.test.exclusions=project/src/test/**/*Test.java

Что ожидается
Если кто-то возвращает код в запросе на вытягивание, который имеет тестовый класс, то он не должен рассматриваться для покрытия. Должен быть только целевой класс.

Что происходит
Если я регистрирую 2 класса SonarSample.java и SonarSampleTest.java, то SonarCloud показывает покрытие для обоих классов.

введите здесь описание изображения Как я могу исключить тестовый класс из рассмотрения для данных о покрытии?


person Abhijeet Vaikar    schedule 18.10.2019    source источник
comment
Как выглядит конфигурация jacoco-maven-plugin в вашем pom.xml?   -  person tomasulo    schedule 18.10.2019
comment
Вы можете использовать свойство sonar.coverage.exclusions так же, как вы использовали sonar.test.exclusions   -  person Imaguest    schedule 18.10.2019


Ответы (1)


Обратите внимание, что покрытие отображается для файлов, классифицированных как источники, и не отображается для файлов, классифицированных как тесты.

Это похоже на ошибку:

-Dsonar.test.exclusions=project/src/test/**/*Test.java

Если вы хотите, чтобы файлы *Test.java рассматривались как тесты и, таким образом, исключались из источников и, следовательно, из вычислений покрытия, измените эту строку на включение вместо исключение:

-Dsonar.test.inclusions=project/src/test/**/*Test.java

Кстати: почему вы используете sonar-scanner вместо mvn sonar:sonar?

person janos    schedule 18.10.2019
comment
Поддерживает ли mvn sonar:sonar анализ запросов на вытягивание? - person Abhijeet Vaikar; 24.10.2019
comment
Спасибо за предложение test.inclusions. Позвольте мне попробовать это :) - person Abhijeet Vaikar; 24.10.2019
comment
@AbhijeetVaikar mvn sonar:sonar поддерживает анализ запросов на вытягивание так же, как sonar-scanner. Вы должны передать необходимые параметры с помощью -D... в том же формате. - person janos; 24.10.2019