我已对其进行配置,因此我的简单单元测试通过了。但是 nosexunit.xml 正在报告测试库文件。部分输出:
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 文档帮助不大。我希望有人可以直接告诉我。
最佳答案
事实证明,我毕竟已经正确配置了这个。问题似乎是,对于我过于简化的冒烟测试,我实际上并没有从我限制覆盖的模块中导入任何东西。
显然,在这种情况下,当覆盖率是零时,nosexcoverage 或 nosetests 不会报告那个无聊的事实,而是决定为您提供关于一堆其他内容的覆盖率报告。
通过为我想要覆盖的模块添加导入语句,我得到了正确的覆盖报告:
----------------------------------------------------------------------
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
关于python - 您如何使用 setup.cfg 正确限制 nosetests 中的 xcoverage 包覆盖范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676104/