Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсказка
При использовании Microsoft.Testing.Platform.MSBuild (включается транзитивно msTest, NUnit и xUnit runners), расширения покрытия кода регистрируются автоматически при установке пакетов NuGet — изменения кода не требуются.
Вы можете использовать функцию анализа покрытия кода, чтобы определить, какая доля кода вашего проекта тестируется с помощью программных тестов, таких как модульные тесты. Чтобы эффективно защититься от ошибок, тесты должны проводиться и охватывать большую часть вашего кода.
Покрытие кода Майкрософт
Анализ покрытия кода Microsoft возможен как для управляемого (CLR), так и неуправляемого (нативного) кода. Поддерживается статическое и динамическое инструментирование. Для этого расширения требуется пакет NuGet Microsoft.Testing.Extensions.CodeCoverage .
Замечание
Покрытие кода неуправляемого (нативного) типа в расширении по умолчанию отключено. При необходимости активируйте флаги EnableStaticNativeInstrumentation и EnableDynamicNativeInstrumentation.
Дополнительные сведения о покрытии кода для неуправляемых программ см. в статическом и динамическом собственном инструментировании.
Это важно
Пакет поставляется с библиотекой Microsoft .NET с закрытым исходным кодом и моделью лицензирования, свободной для использования.
Дополнительные сведения о охвате кода Майкрософт см. на странице GitHub.
Options
| Опция | Description |
|---|---|
--coverage |
Соберите данные о покрытии кода с помощью инструмента dotnet-coverage. |
--coverage-output |
Имя или путь создаваемого файла покрытия. По умолчанию файл имеет значение TestResults/<guid>.coverage. |
--coverage-output-format |
Формат выходного файла. Поддерживаемые значения: coverage, xmlи cobertura. По умолчанию — coverage. |
--coverage-settings |
параметры покрытия XML-кода. |
Дополнительные сведения о доступных параметрах см. в разделе settings и samples.
Замечание
Значение по умолчанию для IncludeTestAssembly в Microsoft.Testing.Extensions.CodeCoverage - это false, тогда как в VSTest по умолчанию это было true. Это означает, что тестовые проекты исключаются по умолчанию. Дополнительные сведения см. в разделе Code Coverage configuration.
Совместимость версий
В следующей таблице показана совместимость различных версий Microsoft.Testing.Extensions.CodeCoverage и Microsoft.Testing.Platform:
| Microsoft.Testing.Extensions.CodeCoverage | Microsoft.Testing.Platform |
|---|---|
| 18.1.x | 2.0.x |
| 18.0.x | 1.8.x |
| 17.14.x | 1.6.2 |
Замечание
Для обеспечения оптимальной совместимости и новейших функций рекомендуется использовать последние версии обоих пакетов вместе.
Покрывало
Интеграция c Coverlet Microsoft Testing Platform (coverlet.MTP) — это нативное расширение для Microsoft.Testing.Platform, реализующее coverlet.collector функциональность.
Добавьте пакет NuGet coverlet.MTP в тестовый проект:
dotnet add package coverlet.MTP
Чтобы собрать покрытие кода, выполните тесты с флагом --coverlet :
dotnet test --coverlet
Или запустите тестовый исполняемый файл с флагом --coverlet :
dotnet exec <test-assembly.dll> --coverlet
После тестового coverage.json запуска файл, содержащий результаты, создается в текущем каталоге.
Options
| Опция | Description |
|---|---|
--coverlet |
Включите сбор данных покрытия кода. |
--coverlet-output-format <format> |
Форматы выходных данных для отчета о охвате. Поддерживаемые форматы: json, , lcovopencover, coberturaи teamcity. Укажите несколько раз, чтобы включить несколько форматов. |
--coverlet-include <filter> |
Включите сборки, соответствующие фильтрам, например [Assembly]Type. Укажите несколько раз, чтобы добавить дополнительные фильтры. |
--coverlet-include-directory <path> |
Включите дополнительные каталоги для исходных файлов. Укажите несколько раз, чтобы добавить больше каталогов. |
--coverlet-exclude <filter> |
Исключите сборки, соответствующие фильтрам, например [Assembly]Type. Укажите несколько раз, чтобы добавить дополнительные фильтры. |
--coverlet-exclude-by-file <pattern> |
Исключите исходные файлы, соответствующие шаблонам глобов. Укажите несколько раз, чтобы добавить дополнительные шаблоны. |
--coverlet-exclude-by-attribute <attribute> |
Исключите методы или классы, украшенные определенными атрибутами. Укажите несколько раз, чтобы добавить больше атрибутов. |
--coverlet-include-test-assembly |
Включите тестовую сборку в отчет о охвате. |
--coverlet-single-hit |
Ограничьте количество попаданий до одного на каждое расположение в коде. |
--coverlet-skip-auto-props |
Пропустить автоматически реализованные свойства в охвате. |
--coverlet-does-not-return-attribute <attribute> |
Атрибуты, которые помечают методы как не возвращаемые. Укажите несколько раз, чтобы добавить больше атрибутов. |
--coverlet-exclude-assemblies-without-sources <value> |
Исключите сборки без исходного кода. Значения: MissingAll, MissingAnyи None. |
Дополнительные сведения см. в документации по coverlet.MTP.