2014-02-19 4 views
0

У меня возникла проблема с созданием отчета о покрытии кода и получением анализа модульных тестов, охватывающих код проекта. Я использовал Sonar для получения отчета о проекте, но секция тестирования тестового блока ничего не показывает. Я провел некоторое исследование и обнаружил, что для сонара необходимо иметь отчет о юнитах, созданный emma/clover/corbetura/jacoco. Проект основан не на maven. Скажите, пожалуйста, как я могу проанализировать покрытие кода для мультимодульного проекта, не связанного с maven. Я использую сонарный бегун.Отчет о покрытии проекта с несколькими модулями

Любая ссылка или справочная информация будут полезны. Пожалуйста, не указывайте ссылки на страницы документации. Видимо, я просмотрел их все. Спасибо заранее.

ответ

1

Я предоставляю ссылки на страницы документации, чтобы помочь другим, которые не видели документацию или примеры. Возьмите настройки свойства maven и переведите их в sonar-runner.properties. Например, в зависимости от того, как вы создали свой проект из нескольких модулей вы можете поместить этот параметр в родительском уровне или внутри каждого модуля: sonar.jacoco.reportPath=reports/coverage/jacoco.exec

Вот ссылка на сонар бегуна проекта мульти-модуль:

http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner

Чтобы настроить покрытие тестового кода модуля, примените те же свойства в maven к файлу sonar-project.properties. Вот пример из примера кода покрытия:

https://github.com/SonarSource/sonar-examples/tree/master/projects/code-coverage

Примечание вам необходимо установить устройство и свойства покрытия, а также свойства кодирования источника.


    sonar.projectKey=org.codehaus.sonar:example-ut-sonarRunner-jacoco-reuseReports 
    sonar.projectName=UT coverage with SonarQube Runner reusing JUnit and JaCoCo reports 
    sonar.projectVersion=1.0 

    sonar.sources=src 
    sonar.binaries=classes 
    sonar.language=java 

    # Tells SonarQube to reuse existing reports for unit tests execution and coverage reports 
    sonar.dynamicAnalysis=reuseReports 

    # Tells SonarQube where the unit tests execution reports are 
    sonar.junit.reportsPath=reports/junit 

    # Tells SonarQube that the code coverage tool by unit tests is JaCoCo 
    sonar.java.coveragePlugin=jacoco 

    # Tells SonarQube where the unit tests code coverage report is 
    sonar.jacoco.reportPath=reports/coverage/jacoco.exec 

    # Encoding of the source files 
    sonar.sourceEncoding=UTF-8 
+0

Для нескольких модулей проекта вы у меня есть следующие настройки: 'sonar.sources = src1, src2, src3 sonar.binaries = classes1, classes2, classes3 sonar.binaries = classes1, classes2, classes3' Для меня это показывает только результаты тестов и покрытие для src1. Указание 'sonar.dynamicAnalysis = reuseReports' не помогло. – divanov

Смежные вопросы