我曾经从Makefile运行我的包的测试,作为在一个中执行三个任务的方法:设置虚拟环境,安装需求并使用相应的参数调用测试套件:
test: venv
env/bin/pip install -r test_requirements.txt
env/bin/nosetests --rednose --with-coverage --cover-pagacke my_module
然后我读到了不支持setup.py的requirements.txt文件,所以我修改了setup.py文件,目的是获得相同的结果:
setup(
...
tests_require=['nose', 'rednose', 'coverage'],
test_suite=['nose.collector'])
现在我可以用
更改Makefiletest: venv
coverage run --source=my_module/ setup.py test
但是这需要在运行setup.py文件之前安装测试依赖项。我也不确定如何包含其他参数,例如rednose。这样做的最佳方式是什么?
答案 0 :(得分:0)
Tox很好,但是不管怎么说,如果不事先安装任何其他包装,这是怎么做的。
在 setup.py 文件中将测试依赖项列为setup_requires
而不是tests_require
setup(
setup_requires=['nose', 'rednose', 'coverage'],
install_requires=[] # fill in other arguments as usual
)
可选择将测试参数添加到 setup.cfg 文件中。
[nosetests]
rednose=1
detailed-errors=1
with-coverage=1
cover-package=server
cover-xml=1
verbosity=2
使用以下命令运行测试
python setup.py nosetests