Создание отчета о покрытии кода и результатов модульного тестирования с помощью одной команды (если возможно)

У меня есть служба Windows, написанная в .NET framework 4.6. Я пытаюсь выполнить анализ сонара для этой службы. Мое требование - сгенерировать как результат покрытия кода, так и отчет по модульному тесту, используя MStest.exe или vstest.console.exe. Я написал тестовые примеры с использованием MStest для своей службы.

Используя MSTest, я написал следующую команду:

MSTest /testcontainer:.\SolutionTests\bin\Release\SolutionTests.dll /resultsfile:"C:\SonarQube\Solution.trx"

Используя vstest.console.exe, я написал следующую команду:

vstest.console.exe SolutionTests\bin\Release\SolutionTests.dll /Enablecodecoverage /Logger:trx;LogFileName="C:\SonarQube\Solution.trx"

В обоих случаях создается только отчет о модульном тестировании (файл .trx), поскольку я явно указал имя файла в команде.

Есть ли способ сгенерировать файл .coverage с помощью той же команды, добавив другие параметры. Я читал в нескольких статьях, в которых говорилось, что команда MSTest генерирует оба отчета (result.trx and data.coverage), но нигде не написана точная команда, как это сделать. Я выполнил указанную выше команду, она не сгенерировала для меня файл data.coverage.


person CrazyCoder    schedule 30.10.2019    source источник


Ответы (1)


Этого можно добиться с помощью пакета под названием Coverlet. По сути, вы можете определить выходной формат тестов и сгенерировать файл .trx для Bamboo. Команда будет выглядеть примерно так:

executable test --logger "trx;LogFileName=testResults.trx"  /p:CollectCoverage=true /p:CoverletOutputFormat=preferredformat.

Ознакомьтесь с документацией, чтобы узнать, как конкретно интегрироваться с VSTest.

person Wesley Rolnick    schedule 31.10.2019
comment
Большое спасибо за ответ. Но согласно документации, этот инструмент используется для приложений ядра dotnet. У меня есть приложение dotnet framework, в котором я использовал MSTest для написания тестов. - person CrazyCoder; 02.11.2019
comment
@CrazyCoder: поддерживает фреймворк и ядро. Я использовал его для обоих, и на главной странице документации специально указано, что его можно использовать на обоих. Вы можете интегрироваться с VSTest или MSBuild для сборки из командной строки. - person Wesley Rolnick; 02.11.2019