Подтвердить что ты не робот

Возможно ли исключить тестовые каталоги из отчетов coverage.py?

Я вроде как новичок с тестированием на модуле python, и в частности cover.py. Желательно, чтобы отчеты о покрытии включали освещение ваших фактических тестовых файлов?

Вот скриншот моего HTML-отчета в качестве примера.

Вы можете видеть, что отчет включает tests/test_credit_card. Сначала я пытался опустить каталог tests/ из отчетов, например:

coverage html --omit=tests/ -d tests/coverage

Я пробовал несколько вариантов этой команды, но я не мог на всю жизнь получить тесты/исключить. После принятия поражения я начал задумываться, возможно, что файлы тестов должны быть включены в отчет.

Может ли кто-нибудь пролить свет на это? Спасибо.

4b9b3361

Ответ 1

Это хорошая идея, чтобы увидеть охват ваших тестов, поскольку это может указывать на проблемы. Если ваш тестовый код не запускается, в его написании не было особого смысла!

То, что я всегда получаю, это когда я даю две функции unit test с тем же именем - я добавляю новый тест через несколько месяцев после оригинала и просто получаю одноименное имя. Unittest framework не будет жаловаться на это - одна из функций скрывает другую, и она просто не будет запускать один из тестов! Подробный отчет о покрытии сразу показывает проблему.

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

И если у вас есть тестовый код, который действительно не нужен, он всегда удаляется!

Ответ 2

coverage html --omit="*/test*" -d tests/coverage

Ответ 3

Создайте файл .coveragerc в корневой папке проекта и включите следующее:

[run]
omit = *tests*