Трубопровод Azure. Преобразование .coverage в xml для создания отчета о покрытии кода. - PullRequest
1 голос
/ 11 мая 2019

Я пытаюсь сгенерировать отчет о покрытии кода, используя конвейер сборки для модульных тестов C # (MSTest2). Отчет может быть сгенерирован с использованием Reportgenerator.exe, но в качестве входных данных используется файл .xml. Я добавил тестовую задачу Visual Studio, которая сгенерировала файл .coverage в артефакте сборки. Мы могли бы использовать CodeCoverage.exe для преобразования .coverage в .xml файл.

Чтобы проверить это локально, я скопировал файл .coverage и при запуске:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Dynamic Code Coverage Tools\amd64>CodeCoverage collect /IIS /session:WebSession /output:'C:\CoverageFiles\test.coverage'

и

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Dynamic Code Coverage Tools\amd64>CodeCoverage analyze /output:'c:\CoverageFiles\results.xml' 'c:\CoverageFiles\test.coverage'

скрипт не выдает никакой ошибки и xml-файл также не генерируется.

Есть ли другой способ создать файл .xml из файла .coverage? Любая помощь по этому вопросу приветствуется.

1 Ответ

0 голосов
/ 12 мая 2019

Вы можете использовать coverlet , чтобы создать отчет о покрытии в другом формате.Coverlet будет вызываться msbuild.Вы можете проверить мой azure-pipelines.yml , где я использую coverlet в сочетании с reporgenerator для создания покрытия кода в конвейере сборки.

Части yml:

- script: |
    echo $(Build.SourcesDirectory)
    cd src\Mwd.Exceptions.Solution
    mkdir $(Build.SourcesDirectory)\results
    dotnet test --logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura  
    copy Mwd.Exceptions.Test\coverage.cobertura.xml $(Build.SourcesDirectory)\results
    dotnet tool install dotnet-reportgenerator-globaltool --tool-path . --version 4.0.0-rc4
    .\reportgenerator "-reports:$(Build.SourcesDirectory)\results\coverage.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)\results" "-reporttypes:HTMLInline;HTMLChart"

dotnet test --logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura создает покрытие в формате cobertura, в то время как поддерживается только конвейер сборки формата.

.\reportgenerator "-reports:$(Build.SourcesDirectory)\results\coverage.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)\results" "-reporttypes:HTMLInline;HTMLChart" создает отчет.

Поскольку coverlet добавляет сборкуЦели msbuild, также должны поддерживаться компиляция ваших решений через devenv.exe.

...