我有一个带有setup.py文件的项目。我使用pytest作为测试框架,并在代码上运行各种指针(pep8、pylint、pydocstyle、pyflakes等)。我使用tox在多个Python版本中运行这些代码,并使用Sphinx构建文档。
我想用python setup.py test任务运行我的测试套件以及源代码上的指针。如果我做到了这一点,那么我将只使用python setup.py test作为在tox.ini文件中运行测试的命令。
所以我的问题是:
python setup.py test执行这些操作是否合理/良好?或者我应该为此使用其他工具,比如直接用tox编写这些命令。setup.py在test任务中执行这些操作?我知道py.test有setup.py test的集成说明(这里是:http://pytest.org/latest/goodpractices.html#integrating-with-setuptools-python-setup-py-test-pytest-runner),但是我正在寻找一个更“任意的CLI命令”路径,因为我想运行几个工具。
发布于 2016-02-06 11:10:08
1.我个人更喜欢用于这些任务,因为
使用您的设置(因为您已经在使用毒性测试),我没有看到编写python setup.py test而不是确切的测试命令到您的tox.ini中的好处,因为它只会增加一些复杂的内容(新用户/贡献者必须搜索两个文件(tox.ini和setup.py)来获取运行的测试/工具,而不是一个(tox.ini) )。
2.
若要使用此命令,您的项目的测试必须通过函数、TestCase类或方法或包含TestCase类的模块或包包装在一个单元测试套件中。
发布于 2016-03-30 15:32:21
如何让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擅长这样的事情。
发布于 2018-05-05 02:47:48
您可以向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 buildhttps://stackoverflow.com/questions/35239628
复制相似问题