Как я могу обеспечить хорошее тестовое покрытие моего большого проекта Python
У меня очень большой проект на Python с очень большим набором тестов. Недавно мы решили количественно оценить качество нашего тестового покрытия.
Я ищу инструмент для автоматизации генерации отчетов по тестированию. В идеале я хотел бы иметь привлекательные, легко читаемые отчеты, но я бы согласился на менее привлекательные отчеты, если бы я мог сделать это быстро.
Я пробовал Nose, что недостаточно хорошо: он несовместим с функцией пакета пространства имен Distre / Setuptools. К сожалению, покрытие носа никогда не будет работать для нас, так как мы широко используем эту функцию. Это настоящий позор, потому что Нос, кажется, работает очень хорошо в Хадсоне (в основном)
В качестве альтернативы я слышал, что в Eclipse есть способ анализа покрытия Python, но я не совсем определил совершенную технику.
Любые предложения приветствуются!
К вашему сведению, мы используем Python 2.4.4 на Windows XP 32bit
2 ответа
Вы пытались использовать cover.py? Он лежит в основе "покрытия носа", но при необходимости может быть отлично проведен вне носа.
Если вы запускаете свои тесты с (гипотетически) python run_my_tests.py
, то вы можете измерить охват с coverage run run_my_tests.py
, а затем получить отчеты HTML с coverage html
,
Из вашего описания я не уверен, какая у вас была проблема с носом, особенно это была проблема с носом, или проблема cover.py. Предоставьте еще некоторые детали, и я уверен, что мы сможем проработать их.
Нед уже упоминал о своем превосходном модуле cover.py.
Если ваша проблема связана с носом, вы можете рассмотреть возможность использования другого бегуна. Я использовал py.test вместе с плагином pytest_coverage, который позволяет вам генерировать статистику покрытия. Он также имеет плагин pytest_nose, который поможет вам мигрировать.
Однако я не совсем понимаю, в чем проблема. Не могли бы вы немного рассказать о упомянутой вами "функции пакета пространств имен для дистрибуции / setuptools"? Мне любопытно узнать, в чем проблема.