2016-05-11 2 views
0

Я работаю над интеграцией тестов Karma в maven и использованием SonarQube для отчетов о покрытии проб.SonarQube не читает покрытие javascript от lcov

В то время как я могу просматривать отчеты о покрытии тестовой оболочки HTML (тип покрытия HTML в karma.conf.js), я не могу просмотреть результаты в SonarQube, когда тип lcov находится в karma.conf.js.

Содержание pom.xml

<properties> 
    <sonar.language>js</sonar.language> 
    <sonar.exclusions>src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/js/vendor/**</sonar.exclusions> 
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
    <sonar.javascript.lcov.reportPath>src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/karma_target/lcov.info</sonar.javascript.lcov.reportPath> 
</properties> 



<build> 
    <!-- Karma test sonar coverage properties: Start--> 
    <sourceDirectory>${basedir}/src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/js</sourceDirectory> 
    <testSourceDirectory>${basedir}/src/main/content/jcr_root/etc/clientlibs/${apps.project.path}/js_test</testSourceDirectory> 

Когда я запускаю mvn clean install sonar:sonar создает lcov.info файл в <sonar.javascript.lcov.reportPath>, указанной в свойствах.

Содержание lcov.info файла:

TN: 
SF:D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui\src\main\content\jcr_root\etc\clientlibs\loyalty\js\config\namespace.js 
FN:15,(anonymous_1) 
FNF:1 
FNH:1 
FNDA:5,(anonymous_1) 
DA:2,1 
DA:15,1 
DA:17,5 
DA:21,5 
DA:22,0 
DA:25,5 
DA:28,8 
DA:30,5 
DA:33,8 
DA:36,5 
LF:10 
LH:9 
BRDA:2,1,0,1 
BRDA:2,1,1,1 
BRDA:21,2,0,0 
BRDA:21,2,1,5 
BRDA:28,3,0,5 
BRDA:28,3,1,3 
BRF:6 
BRH:5 
end_of_record 

После запуска, SonarQube панель управления показывает Js нарушения кода, но не заполняет покрытия кода. enter image description here

конфигурации в karma.conf.js:

preprocessors: { 
     'tpl/*.html': 'ng-html2js', 
     '!(vendor)/*.js': 'coverage' 
    }, 

    coverageReporter: { 
     // specify a common output directory 
     type: 'lcov', 
     dir : 'karma_target/karma-coverage' 
    }, 

SonarQube версия используется в 5.0.1 и JS плагин verison является 2.11

Я предполагаю, что проблема связана с относительными путями, я пошел через эти ссылки here и here, попробовал обновить путь SF до относительно точки lcov.info файл вручную, все безрезультатно. % все еще 0.

Пожалуйста, дайте мне знать, если я делаю что-то не так. Журнал консоли ниже, все пути, на которые ссылаются, являются правильными.

[INFO] [13:21:32.877] Base dir: D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui 
[INFO] [13:21:32.877] Working dir: D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui\target\sonar 
[INFO] [13:21:32.886] Source paths: pom.xml, src/main/content/jcr_root/etc/clientlibs/loyalty/js 
[INFO] [13:21:32.888] Test paths: src/main/content/jcr_root/etc/clientlibs/loyalty/js_test 

[INFO] [13:21:34.441] Analysing D:\Workspace\Workspace_MasterCard\Issuer_53\loyalty\aem\loyalty-aem-web\trunk\loyalty-aem-web-ui\src\main\content\jcr_root\etc\clientlibs\loyalty\karma_target\lcov.info 
[INFO] [13:21:34.441] 25/25 source files have been analyzed 
+0

Имеет ли 'lcov.info' только эти 9 строк? –

+0

nope, я только что взял скриншот первых строк – SubSul

+0

'lcov.info' должен содержать строки, начинающиеся с DA, чтобы указать строки, которые должны быть покрыты: это случай? Вы также можете предоставить большую часть ваших журналов, по крайней мере, строк выше и ниже 'Анализ ... lcov.info'. –

ответ

0

Получил работу окончательно. Это была порочная проблема относительных путей! Проблема была с расположением файла karma.conf.js относительно целевой и других папок. Сейчас все работает нормально.

+0

Какие относительные местоположения работали на вас? –