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

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
  • Останні коментарі
  • Evgenii Legotckoi
    16 квітня 2025 р. 17:08
    Благодарю за отзыв. И вам желаю всяческих успехов!
  • IscanderChe
    12 квітня 2025 р. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    01 квітня 2025 р. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    09 березня 2025 р. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    09 березня 2025 р. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…