将 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
我曾经 运行 从 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'])
现在我可以用
更改 Makefiletest: 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