Можно ли исключить тестовые каталоги из отчетов cover.py?
-
06-07-2019 - |
Вопрос
Я вроде новичка с юнит-тестированием на python, и, в частности, cover.py. Желательно ли, чтобы отчеты о покрытии включали покрытие ваших реальных тестовых файлов?
Вот снимок экрана моего HTML-отчета в качестве примера. р>
Вы можете видеть, что отчет содержит tests / test_credit_card
. Сначала я пытался опустить каталог tests /
в отчетах, например так:
coverage html --omit=tests/ -d tests/coverage
Я пробовал несколько вариантов этой команды, но я не мог не на протяжении всей жизни получить тесты / исключить. Приняв поражение, я начал задаваться вопросом, возможно ли, что тестовые файлы должны быть включены в отчет.
Кто-нибудь может пролить свет на это? Р>
Решение
<Ч>Изменить . Теперь я согласен с приведенным ниже комментарием о том, что он не является хорошим Идея смешать тест вашего производственного кода с тестом вашего тестирования код. Я не могу удалить принятый ответ, поэтому оставлю его без изменений.
** Пожалуйста, опустите мой ответ! **
Это хорошая идея, чтобы увидеть охват ваших тестов, поскольку он может указывать на проблемы. Если ваш тестовый код не запускается, то писать его было бессмысленно!
Я всегда получаю, когда я даю двум функциям модульного теста одно и то же имя - я добавляю новый тест через несколько месяцев после оригинала и просто выбираю одно и то же имя. Фреймворк unittest не будет жаловаться на это - одна из функций скрывает другую, и он просто не будет запускать один из тестов! Подробный отчет о покрытии сразу же показывает проблему.
Если у вас есть другой код в ваших тестах, который не запускается, это также может указывать на другие ошибки, хотя обычно есть несколько строк стандартного кода, которые могут не покрываться в зависимости от того, как тесты вызываются, так что не зацикливайтесь на достижении 100%.
А если у вас есть тестовый код, который больше не нужен, его всегда хорошо удалить!
Другие советы
html --omit = " * / test * " -d тесты / покрытие
Создайте файл .coveragerc
в корневой папке проекта и включите в него следующее:
[run]
omit = *tests*
Вы также можете явно указать, в каком каталоге находится код, который вы хотите охватить, вместо того, чтобы указывать, какие вещи пропустить. В файле .coveragerc
интересующий каталог называется demo
, это выглядит как
[run]
source = demo