Intereting Posts

Как измерить охват кода в проектах ASP.NET Core в Visual Studio?

Я хочу измерить охват кода моих XUnit-тестов в приложении ASP.NET Core. Инструмент для .NET Core в Visual Studio 2015 – это предварительный просмотр 2, а охват кода пока не работает.

Сообщение в блоге http://dotnetthoughts.net/measuring-code-coverage-of-aspnet-core-applications-using-opencover/ с февраля показывает обходной путь с помощью командной строки открытой обложки. Я ищу более интегрированный способ внутри Visual Studio.

Кто-нибудь слышал о более / более интегрированном способе измерения покрытия кода в сочетании с XUnit?

Добавьте пакет NuGet Microsoft.CodeCoverage 1.0.1 в ваш project.json .

Я работаю над Template для Asp.NET и сейчас я работаю над Unit Tests, поэтому я видел ваше сообщение. Здесь вы можете увидеть проект / конфигурацию.

Отказ от ответственности . Эти шаги были даны в разделе «Измерение основного покрытия ASP.NET с помощью OpenCover – DotNetThoughts» .

Несмотря на то, что плакат говорит об этом сайте, я думал, что было бы лучше, если бы здесь были эти шаги для процветания.

ПРИМЕЧАНИЕ . Эти инструкции, ориентированные на операционную систему Windows, должны легко работать для любого O / S, поддерживаемого OpenCover и ReportGenerator.

  1. Создайте свой веб-сайт ASP.NET Core MVC
  2. Убедитесь, что global.json имеет «тест» в проектах
  3. Щелкните правой кнопкой мыши тестовую папку в решении и добавьте новый проект
  4. Убедитесь, что тип проекта – библиотека .NET Core Class
  5. Добавьте к вашему узлу зависимости project.json следующее:
    • «dotnet-test-xunit»: «2.2.0-preview2-build1029»,
    • «xunit»: «2.2.0-beta3-build3402»
    • «Microsoft.CodeCoverage»: «1.0.2»
  6. Добавьте в свой проект project.json следующую версию
    • «testRunner»: «xunit»,
  7. Напишите свои модульные тесты
  8. Загрузите OpenCover и генератор отчетов
  9. Установить OpenCover
  10. Извлечь генератор отчетов в каталог установки OpenCover в папке «Генератор отчетов»
  11. Создайте BAT-файл в своем проекте и назовите его cover.bat
  12. Добавьте следующее содержимое:
 @echo off SET dotnet="C:\Program Files\dotnet\dotnet.exe" SET opencover="C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" SET reportgenerator="C:\Program Files (x86)\OpenCover\ReportGenerator\ReportGenerator.exe" SET targetargs="test" SET filter="+[*]NAMESPACE.* -[*.Test]* -[xunit.*]* -[FluentValidation]*" SET coveragefile=Coverage.xml SET coveragedir=Coverage REM Run code coverage analysis %opencover% -oldStyle -register:user -target:%dotnet% -output:%coveragefile% -targetargs:%targetargs% -filter:%filter% -skipautoprops -hideskipped:All REM Generate the report %reportgenerator% -targetdir:%coveragedir% -reporttypes:Html;Badges -reports:%coveragefile% -verbosity:Error REM Open the report start "report" "%coveragedir%\index.htm" 
  1. Замените NAMESPACE на пространство имен проектов.
  2. Если несколько проектов дублируют регулярное выражение +[*]NAMESPACE.* раз, сколько необходимо для каждого пространства имен
  3. Сохранить файл
  4. Откройте командную строку и убедитесь, что в тестовом проекте
  5. Напечатайте обложку, чтобы запустить тесты вашего устройства, и результаты вашего покрытия в формате HTML, или как вы назвали ваш файл bat на шаге 11.

Кодирование работает для меня, для .Net Core, использующего Microsoft.CodeCoverage как указано выше.

Убедитесь, что в тестовый проект добавлен Microsoft.CodeCoverage nuget

Также проверьте файл project.json на вашем основном проекте, атрибут debugType должен быть «полным», а не «переносным»,

  "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true, "debugType": "full" }, 

Это исправлено для меня

Coverlet ( https://github.com/tonerdo/coverlet ) – новый проект, который недавно появился. Он работает вместе с msbuild и дает прямое решение для покрытия

Я только что попробовал версию ReSharper 2016.3 EAP 4 (предварительный просмотр предварительного доступа). Помимо выполнения единичного тестирования теперь dotCover возвращает информацию о покрытии кода для моих проектов тестирования ядра .net.

OpenCover + ReportGenerator. Установите как пакеты NUGET в один из ваших тестовых проектов (один раз, потому что они просто должны появиться в папке пакета).

Затем вы можете поместить этот файл powershelp https://github.com/rpokrovskij/opencover4vs.ps1 в свою папку решений и настроить его с помощью своих тестовых проектов, используя путь globing, например

$ TestProjectsGlobbing = @ (, ‘*. Test.csproj’)

Затем вы можете запустить его как обычный сценарий Powershel. Результат должен появиться в папке Solution в \ TestsResults \ report \ index.html