通过 "python setup.py test" 将命令行参数传递给 nose

Pass command line arguments to nose via "python setup.py test"

包设置

我构建了一个 Python 包,它使用 nose 进行测试。因此,setup.py包含:

..
test_suite='nose.collector',
tests_require=['nose'],
..

并且 python setup.py test 按预期工作:

running test
...
----------------------------------------------------------------------
Ran 3 tests in 0.065s

OK

运行 XUnit输出

由于我使用的是 Jenkins CI,我想将鼻子结果输出到 JUnit XML 格式:

nosetests <package-name> --with-xunit --verbose

不过,python setup.py test要优雅得多,它安装了测试需求,而无需构建虚拟环境。

当通过 python setup.py test 调用 nose 时,有没有办法将 --with-xunit(或任何其他参数)传递给 nose?

Nose 提供自己的 setuptools 命令 (nosetests),它接受命令行参数:

python setup.py nosetests --with-xunit

可在此处找到更多信息: http://nose.readthedocs.io/en/latest/setuptools_integration.html

您可以使用 setup.cfg

设置 nosetests 选项

比如你setup.cfg

[nosetests]
with-xunit=1

可在 http://nose.readthedocs.io/en/latest/api/commands.html

找到更多信息