当我用积分测试python setup.py nosetests时,我得到了96%的覆盖率
----------------------------------------------------------------------
XML: nosetests.xml
Name Stmts Miss Cover Missing
------------------------------------------------------------------------------
beam_integrals 7 7 0% 1-24
beam_integrals.beam_types 79 0 100%
beam_integrals.characteristic_equation_solvers 65 0 100%
beam_integrals.exceptions 6 0 100%
beam_integrals.utils 14 0 100%
------------------------------------------------------------------------------
TOTAL 171 7 96%
----------------------------------------------------------------------
Ran 634 tests in 178.245s
OK (SKIP=3)但是,如果我用nosetests测试相同的代码,就会得到的完整覆盖率。
----------------------------------------------------------------------
XML: nosetests.xml
Name Stmts Miss Cover Missing
------------------------------------------------------------------------------
beam_integrals 7 0 100%
beam_integrals.beam_types 79 0 100%
beam_integrals.characteristic_equation_solvers 65 0 100%
beam_integrals.exceptions 6 0 100%
beam_integrals.utils 14 0 100%
------------------------------------------------------------------------------
TOTAL 171 0 100%
----------------------------------------------------------------------
Ran 634 tests in 179.226s
OK (SKIP=3)python setup.py nosetests似乎没有正确地报告beam_integrals模块的测试覆盖率。
这一问题已在以下方面得到证实:
发布于 2012-07-01 12:51:03
python setup.py nosetests在开始覆盖测试之前导入了beam_integrals,因此在进行覆盖测量时已经导入了它。这是因为您的setup.py直接导入beam_integrals。这不是一件坏事,许多Python项目这样做是为了从代码本身获取版本信息,而不是在setup.py中复制它。
当您使用nosetests时,它知道在导入任何内容之前先开始覆盖度量。实际上,它可能会导入东西,卸载它们,启动覆盖率,然后运行代码,再次导入内容。
除了使用nosetests来运行测试之外,我不知道您能做些什么。
发布于 2014-10-15 11:58:44
要完成Ned的回答,我知道两个解决方案,可以避免在文件中复制版本。
sympy。
这就是我转向下一个解决方案的原因。https://stackoverflow.com/questions/11279096
复制相似问题