vstest.console.exe создать оболочку только для Moq.dll
Я пытаюсь создать отчет о покрытии кода с помощью vstest.console.exe. Я также использую файл .runsettings и передаю его в качестве параметра.
Что бы я ни пытался сделать, он генерирует отчет о покрытии только для moq.dll.
Ниже я делюсь полным текстом параметров команды, которую я запускаю, а также содержимым файла.runsettings. Любая идея, где я делаю что-то не так?
Команда:
vstest.console.exe "C: \ Xyz.Tests \ bin \ Debug \ netcoreapp2.0 \ Xyz.Tests.dll" / InIsolation / EnableCodeCoverage /settings:CodeCoverage.runsettings
Содержимое файла CodeCoverage.runsettings:
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enabled="false">
<Configuration>
<CodeCoverage>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
1 ответ
Я столкнулся с таким же поведением, но, к счастью, я нашел решение:
Откройте тестовое задание Visual Studio и:
Code coverage enabled
флаг --collect:"Code Coverage"
в Другие параметры консоли Отредактируйте файл .csproj проекта, содержащий протестированные классы и:
добавлять <DebugType>full</DebugType>
в <PropertyGroup>
раздел
Чтобы избежать moq.dll в результатах покрытия кода:
добавлять <ModulePath>.*moq.dll</ModulePath>
в <ModulePaths> -> <Exclude>
раздел файла.runsettings
Вот мои.runsettings
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<MaxCpuCount>0</MaxCpuCount>
</RunConfiguration>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<!-- Match assembly file paths: -->
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
<ModulePath>.*\.exe$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*moq.dll</ModulePath>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
<ModulePath>.*TestAdapter.*</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
И, пожалуйста, проверьте https://developercommunity.visualstudio.com/content/problem/92905/net-core-unit-testing-code-coverage.html ссылку