Публикация нескольких покрытий cobertura с помощью TFS CI


У меня есть проект monorepo, созданный совместно с lerna. И я использую Karma+Jasmine для юнит-тестирования. Структура проекта выглядит следующим образом:

|-packages
| |-package1
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml  // here goes the coverage report in cobertura format
| | | |-Browser1
| | | | |-html          // here goes the reports in html (istanbul) for Browser 1
| | | |-Browser2
| | |   |-html          // here goes the reports in html (istanbul) for Browser 2
| | |-src
| | |-tests
| |-package2
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml
| | | |-Browser1
| | | | |-html        
| | | |-Browser2
| | |   |-html        
| | |-src
| | |-tests
| .
| .
| .
|-karma.conf.js

Тестовая установка работает должным образом и генерирует отчеты html, а также coverage.xml в формате Cobertura внутри каждого отдельного пакета. В TFS CI у меня есть шаг сборки "опубликовать результаты покрытия кода", чтобы опубликовать результаты покрытия со следующими значениями для различных опций:

  • Инструмент Покрытия Кода: Cobertura
  • Итоговый Файл: $(System.DefaultWorkingDirectory)packages*coveragecoberturacoverage.xml
  • каталог отчетов: $(System.DefaultWorkingDirectory)packages*coverage (для отчетов HTML)

Однако шаг сборки предупреждает о следующем

Было найдено несколько совпадений файлов или каталогов. Используя первую спичку: C:MyAgentpathtopackagespackage1coveragecoberturacoverage.xml

Было найдено несколько совпадений файлов или каталогов. Используя первую спичку: C:MyAgentpathtopackagespackage1coverage

Естественно, он также показывает результаты покрытия только для одного пакета. Есть ли способ опубликовать все отчеты о покрытии без добавления шага сборки в CI для каждого пакета?

1 2

1 ответ:

Похоже, что вы используете задачу опубликовать результаты покрытия кода, это не похоже на Задачу опубликовать результаты тестирования. Невозможно опубликовать несколько результатов теста покрытия в одной задаче.

Аргументами этой задачи является сводный файл не похожий на файлы результатов тестов из опубликовать результаты тестов

В вашей файловой структуре есть два файла coverage.xml. Поэтому он будет использовать только первое совпадение, как и упоминалось в сообщении. исходный код задание для вашей справки.

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