Run with coverage что это
Перейти к содержимому

Run with coverage что это

Run with coverage что это

Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

What can I do to prevent this in the future?

If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

Cloudflare Ray ID: 71a9d8248b76924f • Your IP : 82.102.23.104 • Performance & security by Cloudflare

Использование объема протестированного кода для модульного тестирования

В этой статье объясняется, как создать пример проекта. Если у вас уже есть проект, можно перейти к разделу Средства для проверки объема протестированного кода.

Модульные тесты помогают подтвердить наличие нужной функциональности и предоставляют средства проверки действий по рефакторингу. Объем протестированного кода — это измерение объема кода, выполняемого модульными тестами (строки, ветви или методы). Например, если у вас есть простое приложение с двумя условными ветвями кода (ветвь a и ветвь b), модульный тест, проверяющий условную ветвь a сообщит об объеме протестированного кода ветви в 50 %.

В этой статье рассматривается использование объема протестированного кода для модульного тестирования с использованием Coverlet и создания отчетов с помощью ReportGenerator. Несмотря на то что эта статья посвящена C# и xUnit в качестве платформы тестирования, MSTest и NUnit также будут работать. Coverlet — это проект с открытым исходным кодом на сайте GitHub, который предоставляет платформу для платформы объема протестированного кода C#. Coverlet является частью .NET Foundation. Coverlet собирает данные тестового запуска покрытия Cobertura, которые используются для создания отчета.

Кроме того, в этой статье подробно описано, как использовать сведения об объеме протестированного кода, собранные из тестового запуска Coverlet, для создания отчета. Создание отчетов возможно с помощью другого проекта с открытым исходным кодом на сайте GitHub — ReportGenerator. ReportGenerator преобразует отчеты о покрытии, созданные Cobertura в числе многих других программ, в удобные для чтения отчеты в различных форматах.

В основе этой статьи лежит образец проекта исходного кода, доступный в обозревателе примеров.

Тестируемая система

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

Создание библиотеки классов

В командной строке в новом каталоге с именем UnitTestingCodeCoverage создайте новую стандартную библиотеку классов .NET с помощью команды dotnet new classlib .

Приведенный ниже фрагмент кода определяет простой класс PrimeService , который предоставляет функциональные возможности для проверки того, является ли число простым. Скопируйте приведенный ниже фрагмент кода и замените содержимое файла Class1.cs, который был автоматически создан в каталоге Numbers. Переименуйте файл Class1.cs в PrimeService.cs.

Стоит упомянуть, что библиотека классов Numbers была намеренно добавлена в пространство имен System . Это позволяет получить доступ к System.Math без объявления пространства имен using System; . Дополнительные сведения см. в разделе Пространство имен (справка по C#).

Создание тестовых проектов

Создайте два новых шаблона тестового проекта xUnit (.NET Core) из одной командной строки с помощью команды dotnet new xunit :

Оба новых созданных тестовых проекта xUnit должны добавить ссылку на проект библиотеки классов Numbers. Это значит, что тестовые проекты имеют доступ к PrimeService для тестирования. В командной строке используйте команду dotnet add :

Проект MSBuild назван соответствующим образом, так как он будет зависеть от пакета NuGet coverlet.msbuild. Добавьте эту зависимость пакета, выполнив команду dotnet add package :

Предыдущая команда изменила каталоги в области действия на тестовый проект MSBuild, а затем добавила пакет NuGet. После этого были изменены каталоги, и выполнен шаг с заходом на один уровень вверх.

Откройте оба файла UnitTest1.cs и замените их содержимое следующим фрагментом кода. Переименуйте файлы UnitTest1.cs в PrimeServiceTests.cs.

Создание решения

В командной строке создайте новое решение для инкапсуляции библиотеки классов и двух тестовых проектов. С помощью команды dotnet sln :

Это приведет к созданию нового имени файла решения XUnit.Coverage в каталоге UnitTestingCodeCoverage. Добавьте проекты в корневую папку решения.

  • Linux
  • Windows

Выполните сборку решения с помощью команды dotnet build .

Если сборка выполнена успешно, это означает, что вы создали три проекта, соответствующие проекты и пакеты и обновили исходный код правильно. Отлично!

Средства для проверки объема протестированного кода

Существует два типа средств для проверки объема протестированного кода:

  • Сборщики данных. Отслеживают выполнение тестов и собирают сведения о тестовых запусках. Они представляют собранные сведения в различных форматах вывода, таких как XML и JSON. Дополнительные сведения см. в статье Создание своего первого сборщика данных.
  • Генераторы отчетов. Используют данные, собранные из тестовых запусков, для создания отчетов, зачастую в формате HTML.

В этом разделе основное внимание уделяется сборщикам данных. Чтобы использовать Coverlet для проверки объема протестированного кода, существующий проект модульного теста должен иметь соответствующие зависимости пакета или полагаться на глобальный инструментарий .NET, а также на соответствующий пакет NuGet coverlet.console.

Интеграция с тестом .NET

Шаблон тестового проекта xUnit по умолчанию интегрируется с coverlet.collector. В командной строке перейдите в каталог проекта XUnit.Coverlet.Collector и выполните команду dotnet test :

Аргумент "XPlat Code Coverage" — это понятное имя, соответствующее сборщикам данных из Coverlet. Это имя является обязательным (без учета регистра).

В рамках запуска dotnet test полученный файл coverage.cobertura.xml выводится в каталог TestResults. XML-файл содержит результаты. Это межплатформенный вариант, основанный на .NET CLI, который отлично подходит для систем сборки, в которых MSBuild недоступен.

Ниже приведен пример файла coverage.cobertura.xml.

В качестве альтернативы можно использовать пакет MSBuild, если система сборки уже использует MSBuild. В командной строке перейдите в каталог проекта XUnit.Coverlet.MSBuild и выполните команду dotnet test :

Полученный файл coverage.cobertura.xml является выходным. Вы можете ознакомиться с руководством по интеграции MSBuild.

Создание отчетов

Теперь, когда настроено получение данных из запусков модульного теста, можно создавать отчеты с помощью ReportGenerator. Чтобы установить пакет NuGet ReportGenerator в качестве глобального инструмента .NET, используйте команду dotnet tool install :

Запустите средство и укажите нужные параметры, используя файл выходных данных coverage.cobertura.xml из предыдущего тестового запуска.

После выполнения этой команды созданный отчет будет представлен в HTML-файле.

Как использовать Coverage в Django

Когда вы разрабатываете большой проект, случайно можно забыть некоторые части кода, которые нужно протестировать. Coverage.py — это инструмент на python, который поможет вам в этом.

  1. 1. Установка
  2. 2. Запуск и удаление
  3. 3. Для одного файла
  4. 4. Просмотр результата
  5. 5. Хороший уровень покрытия
  6. 6. Исключаем код
Установка

Используйте pip или easy_install, как вам по душе

Запуск и удаление

Для запуска в проекте Django используйте команду:

Эта команда заполнит «.coverage», который расположен в COVERAGE_FILE, а затем вы можете увидеть результаты или отчет. Если вам нужно удалить полученные данные, воспользуйтесь командой:

Для одного файла

Если вы хотите проверить только код Python, то вам необходимо сделать:

Есть несколько дополнительных опций, которые вы можете посмотреть по ссылке .
О шаблонах можно узнать в разделе плагинов .

Просмотр результата

Если вы хотите вывести результаты в командной строке:

Для более понятных и удобных отчетов:

Чтобы точно знать, какая часть вашего кода покрыта тестами, используйте следующую команду:

Программа сгенерирует тот же файл исходного кода с дополнительным синтаксисом:

— Строка с «>» означает, что она была выполнена.

— Строка, начинающаяся с «!», Означает, что она не была выполнена.

— Строка, начинающаяся с «-» означает, что строка была исключена из статистики покрытия.

Хороший уровень покрытия

Хорошее покрытие обычно приходится на 90%. Однако, если результат 100%, это может быть плохим сигналом, так как, возможно, дело с покрытием, а не с качеством тестов.

— Будьте осторожны с качеством ваших тестов.

— Не замедляйте скорости своего разработчика ради покрытия.

— Используйте покрытие, чтобы найти непроверенный код и решить, заслуживает ли он покрытия.

Исключаем код

Иногда нам нужно исключить некоторый код, который не нуждается в покрытии. Существует несколько вариантов:

— Указание файлов для исключения и пропуска в .coveragerc.

— Написание в одной строке блока комментария.

Например, если вы хотите исключить сгенерированный код из покрытия, потому что он должен поддерживаться инструментом генерации:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *