1

Sonar не извлекает информацию о покрытии для моего проекта, когда пути являются абсолютными в моем lcov-файле. Для файла:Покрытие по умолчанию Sonarqube до 0 от Karma Coverage Файл LCOV с абсолютными pathjs

TN: 
SF:/mnt/vg01-data01/jenkins/<jenkins.myhost.com>/jenkins_home/workspace/<job1>/src/app.js 
FN:,(anonymous_0) 
FN:,(anonymous_1) 
FNF:2 
FNH:2 
FNDA:1,(anonymous_0) 
FNDA:2,(anonymous_1) 
DA:3,1 
DA:4,1 
DA:6,1 
DA:7,1 
DA:8,1 
DA:9,1 
DA:11,1 
DA:18,1 
DA:19,1 
DA:22,2 
DA:27,1 
LF:11 
LH:11 
BRF:0 
BRH:0 
end_of_record 
.... 

Я получаю следующие предупреждения:

... 
05:06:27.565 INFO: Analysing [/srv/jenkins/<jenkins.myhost.com>/jenkins_home/workspace/<job1>/coverage/lcov.info] 
05:06:27.574 DEBUG: Default value of zero will be saved for file: src/app.js 
05:06:27.574 DEBUG: Because was not present in LCOV report. 
05:06:27.578 DEBUG: Default value of zero will be saved for file: src/app.spec.js 
05:06:27.578 DEBUG: Because was not present in LCOV report. 
05:06:27.579 DEBUG: Default value of zero will be saved for file: src/js/form/form.ctrl.js 
05:06:27.579 DEBUG: Because was not present in LCOV report. 
05:06:27.580 DEBUG: Default value of zero will be saved for file: src/js/form/form.module.js 
05:06:27.580 DEBUG: Because was not present in LCOV report. 
05:06:27.581 DEBUG: Default value of zero will be saved for file: src/js/success/success.ctrl.js 

... 

Однако, по умолчанию карма (и Стамбул) генерируют файл с абсолютными путями.

Если я изменю пути, чтобы сделать их относительными, sonarqube правильно сообщает о покрытии. Тем не менее, я должен убедиться, что скрипт «lcov patch» всегда запускается до отправки на сонар.

Сонар поддерживает абсолютные пути? Что другие команды делают для этой проблемы? Эти версии, которые я использую:

Update: Я заменил файл и журнал я вижу с точными данными из рабочих мест (я по-прежнему должен изменить имя хоста и работу по соображениям безопасности.)

Обновление март 2016: У меня есть отправил запрос Pull в Istambul, чтобы разрешить генерировать lcov-файл с относительными путями. Я ожидаю, что это решит этот вопрос https://github.com/gotwarlost/istanbul/pull/771

ответ

2

Плагин JavaScript для SonarQube должен иметь возможность обрабатывать как относительные, так и абсолютные пути в файлах LCOV. Однако, похоже, что ваша установка неверна. Файл LCOV относится к пути к файлам в данном каталоге:

SF:/home/mrincon/work/git/promoter-app-client/src/app.js 

И на основе журналов вашего анализа, кажется, что ваш анализ выполняется в другом каталоге:

Analysing [/srv/jenkins/master/jenkins_home/workspace/job1/coverage/lcov.info] 

Может быть, вы сгенерирован LCOV на одном компьютере и выполнить анализ на другом ... В конце концов, SonarQube не может сопоставлять пути, содержащиеся в файле LCOV, с файлами, которые анализируются.

Вы должны либо:

  • сгенерировать отчет о LCOV и запустить анализ SonarQube из того же каталога,
  • или ваш файл LCOV содержат только относительные пути.
+0

Привет, Pierre, я обновил файлы для фактических из моей работы, рабочего пространства и журнала (мне все равно нужно скрыть имя хоста и задания). Вы окончательно указываете мне в правильном направлении, так как пути не совпадают! – miguelr

+1

Пьер, как вы делаете свой файл LCOV для вывода только относительных путей? Кажется, что это произошло раньше в https://github.com/gotwarlost/istanbul/issues/104, но так и не закрылось. Я отправил PR для этого, хотя https://github.com/gotwarlost/istanbul/pull/771 – miguelr

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