pytest-cov — это плагин для pytest, который позволяет измерять покрытие кода тестами при использовании инструмента coverage. Инструмент "покрытие" используется для определения, какие строки кода были выполнены (и не выполнены) в процессе тестирования, что позволяет определить, насколько хорошо ваш код покрыт тестами.
Давайте рассмотрим, как использовать pytest-cov.
pip install pytest-cov
Чтобы запустить тесты и сгенерировать отчет о покрытии, используйте следующую команду:
pytest --cov=my_module test_my_module.py
Здесь my_module
— это имя модуля, который вы хотите проверить на покрытие, а test_my_module.py — файл с тестами.
После выполнения команды вы увидите статистику покрытия в консоли.
Вы можете генерировать отчеты в различных форматах:
Текстовый отчет:
pytest --cov=my_module test_my_module.py --cov-report term
HTML отчет:
pytest --cov=my_module test_my_module.py --cov-report html
Эта команда создаст каталог htmlcov, в котором будут содержаться HTML-страницы с детальным отчетом о покрытии.
XML отчет (обычно используется для интеграции с CI/CD системами):
pytest --cov=my_module test_my_module.py --cov-report xml
Вы можете исключить определенные строки кода или файлы из отчета о покрытии, используя файл .coveragerc. Это может быть полезно, если у вас есть строки кода, которые вы не хотите учитывать в отчете о покрытии (например, условные операторы, специфичные для отдельной платформы).
Пример файла .coveragerc:
[run]
omit =
my_module/some_directory_to_omit/*
my_module/some_file_to_omit.py
pytest-cov является мощным инструментом для измерения покрытия кода тестами. Используя его, вы можете лучше понять, какие части вашего кода проверяются тестами и какие нет, что позволит улучшить качество вашего кода и набора тестов.
Содержание: