Вопрос

Я вроде новичка с юнит-тестированием на 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top