Настройка отчета о покрытии кода для 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/'
},
Бонусный вопрос: как мне установить условия сбоя сборки на содержание кода, о котором сообщается в карме?
Ответы
Ответ 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']
},