Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何测试setup.py?_Python_Setup.py_Nosetests - Fatal编程技术网

Python 如何测试setup.py?

Python 如何测试setup.py?,python,setup.py,nosetests,Python,Setup.py,Nosetests,我一直在从我的库中收集单元测试覆盖率,但由于我没有setup.py的测试用例,因此该文件始终给出0 是否有人曾经使用nosetests测试setup.py?以下是我的文件结构: setup.py library/*.py tests/test*.py doc/source/*.rst 这是我的测试命令。我在setup.py所在的同一目录中运行了它: nosetests --with-cov --with-doctest --doctest-extension=.rst 覆盖率输出如下所示:

我一直在从我的库中收集单元测试覆盖率,但由于我没有
setup.py
的测试用例,因此该文件始终给出0

是否有人曾经使用
nosetests
测试
setup.py
?以下是我的文件结构:

setup.py
library/*.py
tests/test*.py
doc/source/*.rst
这是我的测试命令。我在setup.py所在的同一目录中运行了它:

nosetests --with-cov --with-doctest --doctest-extension=.rst
覆盖率输出如下所示:

----------- coverage: platform win32, python 2.7.5-final-0 -----------
Name                                  Stmts   Miss  Cover
---------------------------------------------------------
library\__init__                         18      0   100%
setup                                    10     10     0%
....
tests\xxxxxxx                            8      2    75%
---------------------------------------------------------
TOTAL                                   253     39    85%
----------------------------------------------------------------------

因为setup.py为我的覆盖率贡献了0,所以我永远不会达到100%的覆盖率。

通常只为
库/
计算覆盖率,而不是为
测试/
文档/
setup.py
计算覆盖率。你是如何运行测试的
python setup.py test
?我根本不会测试setup.py。它通常本质上是非常声明性的,如果不是,那么测试起来就非常复杂,因为它需要你模仿掉很多副作用很重的调用。相反,如果您必须有更复杂的逻辑(例如,从文档文件中提取版本,正如我前几天看到的),请从setup.py中提取,然后单独开发/测试。“那就导入并使用吧!”琼尔夏普,我已经给出了我的答案command@deets,但setup.py为我的覆盖率结果提供了0:(您是否尝试添加
--cov库/测试
?请参阅例如。