Как я могу обеспечить хорошее тестовое покрытие моего большого проекта Python - PullRequest
6 голосов
/ 25 июня 2010

У меня очень большой проект на Python с очень большим набором тестов.Недавно мы решили количественно оценить качество нашего тестового покрытия.

Я ищу инструмент для автоматизации создания отчета о покрытии тестов.В идеале я хотел бы иметь привлекательные, легко читаемые отчеты, но я бы согласился на менее привлекательные отчеты, если бы я мог заставить их работать быстро.

Я попробовал Nose, но этого недостаточно:несовместим с функцией пакета пространства имен distre / setuptools.К сожалению, покрытие носа никогда не будет работать для нас, так как мы широко используем эту функцию.Это настоящий позор, потому что кажется, что Nose действительно хорошо работает в Хадсоне (в основном)

В качестве альтернативы я слышал, что есть способ сделать анализ покрытия Python в Eclipse, но я не совсем заблокированВниз идеальная техника.

Любые предложения приветствуются!

К вашему сведению, мы используем Python 2.4.4 в Windows XP 32bit

Ответы [ 2 ]

4 голосов
/ 25 июня 2010

Вы пытались использовать cover.py ? Он лежит в основе «покрытия носа», но при необходимости может быть отлично проведен вне носа.

Если вы запускаете свои тесты с (гипотетически) python run_my_tests.py, то вы можете измерить охват с помощью coverage run run_my_tests.py, а затем получить отчеты HTML с coverage html.

Из вашего описания я не уверен, какая у вас была проблема с носом, особенно, была ли это проблема с носом, или проблема cover.py. Предоставьте еще некоторые детали, и я уверен, что мы сможем проработать их.

1 голос
/ 25 июня 2010

Нед уже упоминал о своем превосходном модуле cover.py.

Если ваша проблема связана с носом, вы можете подумать об использовании другого бегуна.Я использовал py.test вместе с плагином pytest_coverage , который позволяет генерировать статистику покрытия.Он также имеет плагин pytest_nose , который поможет вам мигрировать.

Однако я не совсем понимаю, с какой проблемой вы сталкиваетесь.Можете ли вы немного рассказать о упомянутой вами «функции пакета пространств имен для дистрибуции / setuptools»?Мне любопытно узнать, в чем проблема.

...