如何在`python setup.py test`中运行py.test和linters
我有一个setup.py
文件的项目。 我使用pytest
作为测试框架,我也在我的代码上运行各种linters( pep8
, pylint
, pydocstyle
, pyflakes
等)。 我使用tox
在多个Python版本中运行这些代码,以及使用Sphinx
构建文档。
我想用python setup.py test
任务运行我的测试套件以及源代码中的linters。 如果我实现了这个目标,那么我会使用python setup.py test
作为在tox.ini
文件中运行测试的命令。
所以我的问题是:
python setup.py test
来执行这些操作是合理的还是很好的做法? 或者我应该使用其他工具,例如直接在tox
写入这些命令? setup.py
在test
任务中执行这些操作? 我知道py.test
具有setup.py test
集成说明(这里是:http: py.test
),但我正在寻找更多的“任意CLI命令”路由,因为我想运行几个工具。
1.我个人更喜欢TOX这些任务,因为
并且随着你的设置(因为你已经在使用tox了),我真的不明白将python setup.py test
写入tox.ini
的好处,而不是真正的测试命令,因为它只会增加一些更复杂的内容(新用户/贡献者必须搜索两个文件( tox.ini
和setup.py
)以获得运行的测试/工具,而不是一个( tox.ini
)。
2。
要使用此命令,您的项目测试必须通过函数,TestCase类或方法或包含TestCase类的模块或程序包包装在unittest测试套件中。
setuptools的#测试
如何让setup.py test
做tox
import sys
import os
if sys.argv[-1] == 'test':
try:
import tox
except ImportError:
raise ImportError('You should install `tox` before run `test`')
sys.exit(os.system('tox'))
看起来不太好,但你有一点。 继续使用tox.ini
来配置你的测试环境和跑步者(如flake8
, coverage
等)。因为tox
擅长这样的东西。
您可以将更多自定义命令添加到您的setup.py文件中,如下所示:
class FooCommand(distutils.cmd.Command):
...
setup(
cmdclass={
'foo': FooCommand,
}
)
但是,请注意,已经有一组您可以使用的命令,以及一些可以包含的选手。
setup(
setup_requires=['pytest-runner'] # gives you a new pytest command
)
通过运行python setup.py --help-commands
Extra commands:
...
pytest run unit tests after in-place build
链接地址: http://www.djcxy.com/p/31931.html
上一篇: How to run py.test and linters in `python setup.py test`
下一篇: How to Fix unplug usb cable error in android with usb web cam?