解决方案
Tox 2.6 引入了extras
选项。这将从extras
它刚刚构建的 sdist 安装,仅适用于该 sdist 并且当时它正在执行正常的 sdist 安装。
setup.py 应如下所示:
setuptools.setup(
...
extras_require={
'tests': ['pytest>=3.7.0', 'more_packages'],
},
...
)
tox.ini 应该如下所示:
[testenv]
...
extras = tests
...
关注点
其他方法可能会得到类似的结果,但会引入不必要的风险并限制其他功能的有用性:
deps =.[tests]
有点小题大做。该字段用于环境需要的包。如果 setup.py install_requires 引用了您开发的另一个包,您可以使用它来拉入它的预发布版本。如图所示,它将从您的工作目录(无论处于何种状态!)安装您的整个包,只是为了获取tests
. install_command
接下来将运行,安装新创建的 sdist。简而言之,sdist 的问题可能会被掩盖,因为您已经从工作副本安装。
编辑install_command
是多余的。它会覆盖通过deps
. (同样,也许你用它来安装一个特定版本的包)。
tests_require
运行时使用python setup.py test
。Tox建议避免python setup.py test
,这样您就可以忽略tests_require
所有内容。