Включить отчет о покрытии кода в VSTS. Является ли тестовый адаптер обязательным для VSTS?

Я генерирую покрытие кода, используя Karma-coverage. Я могу разместить папку выходного покрытия на http-сервере и просматривать ее локально.

Как сделать этот отчет видимым на вкладке покрытия кода VSTS?

Нужно ли мне переформатировать результат покрытия, чтобы он был совместим с VSTS?

Я читал о vsts-задачах, но понятия не имею, как добиться того же.

Любая помощь приветствуется.


person Akanksha Gaur    schedule 24.12.2016    source источник
comment
В настоящее время VSTS не поддерживает внешние таблицы стилей из отчета о покрытии кода. Это приводит к урезанному представлению HTML на панели покрытия кода. Поэтому, чтобы все выглядело нормально, вы можете запустить задачу освещения публикации, чтобы встроить свой CSS В HTML-отчетах о покрытии кода отсутствуют стили в Vsts   -  person David Chelliah    schedule 23.09.2017


Ответы (2)


Покрытие кода VSTS поддерживает выходные результаты покрытия кода в форматы Jacoco или Cobertura. Karma-Coverage поддерживает формат Cobertura. Отредактируйте свой karma.config.js для

покрытие кармы:

coverageReporter: {
  type : 'cobertura',
  ...
}

karma-remap-istanbul:

remapIstanbulReporter: {
  reports: {
    cobertura: './coverage/cobertura.xml',
    ...
  }
}

karma-remap-coverage:

remapCoverageReporter: {
 cobertura: './coverage/cobertura.xml',
 ...
},

Настроив выходной формат, вы можете использовать задачу Опубликовать покрытие кода для загрузки данных о покрытии кода в VSTS.

person Krishh    schedule 27.12.2016
comment
Я реализовал это решение, которое работает, но если вы измените type из coverageReporter на in-memory, вы можете использовать несколько reports под remapCoverageReporter. В настоящее время я использую html и cobertura. Это было невозможно для меня при использовании cobertura в качестве типа. - person Arikael; 07.06.2017
comment
См. также docs.microsoft. com/en-us/vsts/build-release/tasks/test/ - person Daniel Schilling; 11.12.2017

С файлом karma.conf.js, сгенерированным angular CLI 1.2+, это так же просто, как добавить отчет cobertura (вместо отчета lcov) в istanbul reporter:

coverageIstanbulReporter: {
  reports: ['html', 'cobertura'],
  fixWebpackSourcePaths: true
}

Поэтому, когда вы будете запускать тесты с параметром --code-coverage, в каталоге coverage будет создан файл с именем coverage-cobertura.xml.

Затем в вашей сборке TFS/VSTS вы можете добавить задачу Publish Code Coverage и указать XML-файл cobertura.

person gentiane    schedule 14.11.2017
comment
@gentiane, почему в отчетах указывается «html»? Это потому, что он создаст html-файл, который также будет содержать покрытие кода? Если да, то можем ли мы использовать его вместо cobertura.xml для отображения покрытия кода в сводке сборки VSTS? - person SRP; 14.12.2018
comment
Html Reporter позволяет создавать файлы HTML, по одному для каждого анализируемого файла. Вы можете включить их в артефакты сборки, чтобы встроить и отобразить подробный отчет в сводке сборки. Но сохраните файл cobertura.xml, так как он предоставляет метрики результатов тестирования и покрытия для VSTS, что позволяет отслеживать ход выполнения модульных тестов в сборках. - person gentiane; 18.12.2018