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

Integrating setup.py with Makefile to run tests

我曾经 运行 从 Makefile 中对我的包进行测试,作为一种同时执行三项任务的方法:设置虚拟环境、安装要求并使用相应的参数调用测试套件:

test: venv
  env/bin/pip install -r test_requirements.txt
  env/bin/nosetests --rednose --with-coverage --cover-pagacke my_module

然后我读到 requirements.txt 文件不鼓励使用 setup.py,所以我修改了 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。最好的方法是什么?

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