Как задать путь к файлу пользовательского результата покрытия при запуске do tnet test --collect "Покрытие кода"? - PullRequest
0 голосов
/ 08 апреля 2020

Я следовал инструкциям на http://tdc1tfsapp01: 8080 / tfs / DefaultCollection / SharpTop / _packaging? _A = package & feed = dayforce & package = OrchardCore.Cms.Web & version = 1.0.20098.7 + 1bcd36b1f8efd5484af49f8ec39c210Geetpee1001 создайте двоичный файл результатов покрытия и отобразит ссылку на него в сборке.

Но я хочу преобразовать его в Cobertura, чтобы опубликовать sh в самой сборке. Это довольно запутанный процесс, в котором необходимо:

  1. Скачать пакет https://www.nuget.org/packages/Microsoft.CodeCoverage/ и найти CodeCoverage.exe внутри.
  2. Запустить CodeCoverage.exe чтобы преобразовать двоичный результат покрытия в соответствующий XML.
  3. Установите генератор отчетов do tnet tool
  4. Запустите инструмент генератора отчетов, чтобы преобразовать это XML в Cobertura
  5. Наконец, мы можем опубликовать sh в сборке

Моя проблема в том, что я не знаю, где находится двоичный результат во время сборки. Итак, мой вопрос - можем ли мы настроить его местоположение?

1 Ответ

0 голосов
/ 08 апреля 2020

Нашел это. Необходимо сделать три вещи:

  1. Отключить автомат c публикация результатов теста с помощью команды DotNetCoreCLI@2 test. Это предотвращает внедрение собственного каталога результатов.
  2. Передайте свой собственный каталог в параметре -r.
  3. Добавьте явное задание для публикации sh результатов теста.

Вот как я запускаю тесты:

- task: DotNetCoreCLI@2
  name: Test
  displayName: Test
  inputs:
    command: 'test'
    publishTestResults: false
    arguments: '-c Release --no-build -l trx -r "$(Build.StagingDirectory)\tests" --collect "Code coverage"'

И результат покрытия будет $(Build.StagingDirectory)\tests\<SOME GUID>\*.coverage

...