Как правильно ограничить покрытие пакета xcoverage в тестах на нос, используя setup.cfg? - PullRequest
3 голосов
/ 13 марта 2012

Я настроил его так, чтобы мой простой модульный тест прошел.Но nosexunit.xml сообщает о тестовых файлах lib.Частичный вывод:

nosexcover-1.0.7-py2.6.egg/nosexcover/nosexcover    25     24     4%   5-41, 46-56
test/unit/test_setup                                13      0   100%   

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

project
\-- backend     # <-- module I'm testing
    \-- lib     # <-- what I want to cover
    \-- test
       \-- unit/test_setup.py       # <-- test I'm running
    \-- setup.py
    \-- setup.cfg
\--reporting
    \-- setup.py
    \-- setup.cfg

Я запускаю тесты из каталога с именем backend:

project/backend$ python setup.py nosetests -s --tests=unit/test_setup.py

Nosetests настроен в файле setup.cfg следующим образом

[nosetests]
# locating tests
where=./test
include=^unit.*

# coverage
cover-package=lib
cover-html=1
cover-html-dir=htmlcov
with-xcoverage=1
xcoverage-file=coverage.xml
with-xunit=1
xunit-file=nosexunit.xml
cover-erase=1

У меня ощущение, что одна из настроек пути отключена.Я предполагаю, что настройки where и cover-package относятся к местоположению setup.py (также там, где я запускаю тест), а include относительно where.

Nosetestsдокументация не сильно помогла.Я надеюсь, что кто-то может поставить меня прямо здесь.

1 Ответ

0 голосов
/ 13 марта 2012

Оказывается, я все-таки правильно настроил.Кажется, проблема в том, что для моего слишком упрощенного теста дыма я фактически не импортировал ничего из модуля, для которого я ограничил покрытие.

Очевидно, в этом случае, когда охват равен нулю, а не отчетуэтот скучный факт, носовое покрытие или тестирование носа решает вместо этого предоставить вам отчет о покрытии множества других вещей.

Добавив оператор импорта для модуля, который я хотел покрыть, я получил соответствующий отчет о покрытии:

----------------------------------------------------------------------
XML: nosexunit.xml
Name        Stmts   Miss  Cover   Missing
-----------------------------------------
lib             0      0   100%   
lib.blank       1      0   100%   
-----------------------------------------
TOTAL           1      0   100%   
----------------------------------------------------------------------
Ran 2 tests in 0.008s
...