Настройка отчета о покрытии кода для Karma on TeamCity - программирование
Подтвердить что ты не робот

Настройка отчета о покрытии кода для Karma on TeamCity

Мы настраиваем TeamCity для запуска наших тестов жасмина с помощью node и кармы.

Тесты выполняются нормально, и результаты отображаются на вкладке "Тесты" в TeamCity.

Однако мы хотели бы сообщить о содержании кода в TeamCity (и даже установить условия сбоя сборки на уровне).

Я установил модуль покрытия кармы

npm install karma-coverage --save-dev

И попытался настроить его в karma.conf.js, добавив

preprocessors: {
 'myProject/Scripts/app/**/*.js': 'coverage'
},

reporters: ['progress', 'coverage'],

Когда запущена карма, сообщения об ошибках не сообщаются, и под папкой coverage создается большое количество файлов, включая отчет с наилучшим образом отформатированным кодом покрытия в index.html

Но ничего нового не появилось в TeamCity. Нет вкладки "Покрытие кода".

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

Возможно, я могу использовать set coverageReporter для чего-то подходящего, но что? Этот параметр не имеет значения:

coverageReporter: {
    type : 'html',
    dir : 'coverage/'
},

Бонусный вопрос: как мне установить условия сбоя сборки на содержание кода, о котором сообщается в карме?

4b9b3361

Ответ 1

Самый простой способ заставить TeamCity распознать ваш отчет о покрытии - вывести артефакт сборки, содержащий этот хороший отчет о покрытии html.

Измените настройки конфигурации для вашей сборки, а в разделе "Пути артефактов" добавьте что-то вроде:

coverage/** => coverage.zip

TeamCity распознает артефакт coverage.zip, если он найдет файл index.html в корне и добавит вкладку "Покрытие кода" для каждой сборки.

Источник: https://confluence.jetbrains.com/pages/viewpage.action?pageId=74847395#HowTo...-ImportcoverageresultsinTeamCity (версия Teamcity 9.x)

Ответ 2

В моем случае отчет был успешно сгенерирован в coverage.zip, но вкладка покрытия кода не была видна в отчете сборки.

Мне пришлось вручную добавить вкладку отчета в Параметры проекта и предоставить полный путь к файлу index.html

введите описание изображения здесь

Ответ 3

Не знаете, если последовательность важна, и не следует ли использовать [] скобки в записях препроцессоров?

Попробуйте следующее:

reporters: ['progress', 'coverage'],

preprocessors: {
 'myProject/Scripts/app/**/*.js': ['coverage']
},