将setup.py与Makefile集成以运行测试

时间:2017-06-12 15:23:14

标签: python testing makefile code-coverage packaging

我曾经从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'])

现在我可以用

更改Makefile
test: venv
    coverage run --source=my_module/ setup.py test

但是这需要在运行setup.py文件之前安装测试依赖项。我也不确定如何包含其他参数,例如rednose。这样做的最佳方式是什么?

1 个答案:

答案 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

来源:http://nose.readthedocs.io/en/latest/api/commands.html