Поделиться через


Расширения покрытия кода

В этой статье перечислены и описаны все расширения Microsoft.Testing.Platform, связанные с возможностью покрытия кода.

Вы можете использовать функцию покрытия кода, чтобы определить, какая доля кода проекта тестируется с помощью закодированных тестов, таких как модульные тесты. Чтобы эффективно защититься от ошибок, тесты должны проводиться и охватывать большую часть вашего кода.

Покрытие кода Майкрософт

Анализ покрытия кода Microsoft возможен как для управляемого (CLR), так и неуправляемого (нативного) кода. Поддерживается статическое и динамическое инструментирование. Это расширение поставляется в составе пакета NuGet Microsoft.Testing.Extensions.CodeCoverage.

Заметка

Покрытие кода неуправляемого (нативного) типа в расширении по умолчанию отключено. При необходимости активируйте флаги EnableStaticNativeInstrumentation и EnableDynamicNativeInstrumentation. Дополнительные сведения о покрытии кода для неуправляемых программ см. в статическом и динамическом собственном инструментировании.

Важный

Пакет поставляется с библиотекой Microsoft .NET с закрытым исходным кодом и лицензией на бесплатное использование.

Дополнительные сведения о охвате кода Майкрософт см. на странице GitHub.

Покрытие Microsoft Code предоставляет следующие варианты:

Выбор Описание
--coverage Соберите данные о покрытии кода с помощью инструмента dotnet-coverage.
--coverage-output Имя или путь создаваемого файла покрытия. По умолчанию файл имеет значение TestResults/<guid>.coverage.
--coverage-output-format Формат выходного файла. Поддерживаемые значения: coverage, xmlи cobertura. По умолчанию используется coverage.
--coverage-settings параметры покрытия XML-кода.

Дополнительные сведения о доступных параметрах см. в настройках и примерах .

Заметка

Значение по умолчанию для IncludeTestAssembly в Microsoft.Testing.Extensions.CodeCoverage - это false, тогда как в VSTest по умолчанию это было true. Это означает, что тестовые проекты исключаются по умолчанию. Дополнительные сведения см. в разделе "Настройка покрытия кода".

Покрывало

Важный

Пакет NuGet coverlet.collector предназначен специально для VSTest и не может использоваться с Microsoft.Testing.Platform.

В настоящее время нет расширения Coverlet, но вы можете использовать глобальный инструмент .NET Coverlet .

Если вы уже установили глобальное средство Coverlet, теперь можно запустить следующее:

coverlet .\bin\Debug\net8.0\TestProject2.dll --target "dotnet" --targetargs "test .\bin\Debug\net8.0\TestProject2.dll --no-build"