Lila25mila
29 января 2019 г. 13:53

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

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


Установка

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

  1. pip install coverage
Запуск и удаление

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

  1. overage run --source='.' manage.py test the-app-you-want-to-test

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

  1. coverage erase
Для одного файла

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

  1. coverage run your_program.py arg1 arg2 arg3

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

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

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

  1. coverage report

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

  1. coverage html

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

  1. coverage annotate -d directory-where-to-put-annotated-files

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

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

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

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

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

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

Несколько советов:

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

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

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

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

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

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

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

  1. # pragma: no cover

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

  1. def generated_code(): # pragma: no cover
  2. do_something()

Больше информации на Coverage.py documentation.

По статье задано0вопрос(ов)

2

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь