В настоящее время мы используем Sonar для проверки качества нашего производственного кода. Я хотел бы проверить качество тестового кода.Как проверить качество теста с помощью Sonar?
Как я могу это сделать?
Я попытался изменить «sonar.sources», чтобы включить тест, но в этом случае у меня есть ошибка: тестовые папки определены дважды, одна в тесте и одна в источнике.
Может быть, я могу настроить sonar/maven/jenkins для запуска 2 анализа: первый, код src, с тестовым покрытием, испытания (только качество, отсутствие покрытия). Но мне также нужно, чтобы все работало в одной задаче jenkins и отображалось в одном проекте Sonar.
И я не знаю, где настроить (pom? Sonar? Jenkins?). Я нашел некоторые вещи о профилях, но, похоже, он устарел для моей версии.
Я использую Sonar 5.1, бегу от работы jenkins.
наших свойств эхолота в П являются:
<project.testresult.directory>${project.build.directory}/test-results</project.testresult.directory>
<run.addResources>false</run.addResources>
<sonar-maven-plugin.version>2.6</sonar-maven-plugin.version>
<sonar.exclusions>src/main/webapp/assets/**/*.*,
src/main/webapp/bower_components/**/*.*,
src/main/webapp/dist/**/*.*</sonar.exclusions>
<sonar.jacoco.itReportPath>${project.testresult.directory}/coverage/jacoco/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.jacoco.reportPath>${project.testresult.directory}/coverage/jacoco/jacoco.exec</sonar.jacoco.reportPath>
<sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin>
<sonar.javascript.jstestdriver.reportsPath>${project.testresult.directory}/karma</sonar.javascript.jstestdriver.reportsPath>
<sonar.javascript.lcov.reportPath>${project.testresult.directory}/coverage/report-lcov/lcov.info</sonar.javascript.lcov.reportPath>
<sonar.sources>${project.basedir}/src/main/</sonar.sources>
<sonar.surefire.reportsPath>${project.testresult.directory}/surefire-reports</sonar.surefire.reportsPath>
<sonar.tests>${project.basedir}/src/test/</sonar.tests>
Вы знаете, что тестовый код обычно покрыт 100%. Зачем вам это нужно? Для обеспечения качества вы можете запускать статические инструменты анализа кода (PMD, CheckStyle, FindBugs, CodeNarc и т. Д.). Для покрытия кода все, что имеет значение, это то, что является sonar.sources, sonar.tests и sonar.java.binaries (sonar.binaries), особенно последний. Если вы укажете это значение как target/classes/*, вы увидите, что Duplicate/defined дважды ошибочно. Попробуйте установить sonar.sources = src/main, sonar.tests = src/test и т. Д., А сначала, sonar.binaries (sonar.java.binaries) для целей/классов/основных и получить охват. Затем попробуйте с целью/classes/test –