我想使用setup.py作为要安装以进行测试的软件包的权限,使用extra_requires完成,如下所示:
setup(
# ...
extras_require={
'test': ['pytest', ],
},
)
Tox似乎只能提供installing from a requirements.txt文件,这只是意味着在测试之前快照需求的步骤(我不知道如何自动执行)或duplicating the test dependencies进入tox文件这就是我想要避免的。 One mailing list post建议tox.ini应该是测试依赖项的权威,但我不希望将tox完全插入到项目中。
答案 0 :(得分:11)
您现在拥有“额外”选项:
{{input placeholder=placeholder value=cardNumber key-press=action}}
来源:https://tox.readthedocs.io/en/latest/config.html#conf-extras
答案 1 :(得分:0)
我想出了一个似乎有用的讨厌的黑客
# tox.ini
...
[testenv]
...
install_command = pip install {opts} {packages} {env:PWD}[test]
defualt install_command
是pip install {opts} {packages}
,遗憾的是{packages}
是必需参数。此外,tox不会将项目目录公开为魔术变量;但它确实暴露了运行它的shell的env
。
这可以假设您从与tox
和setup.py
相同的目录中运行tox.ini
,并假设您的shell公开PWD
作为当前路径。 Tox似乎使用shlex
之类的东西将install_command
拆分为一组shell安全的参数,因此我们无法执行{packages}[test]
之类的操作。最终,这个黑客会给你的包命名两次,但我认为这是好的,因为{env:PWD}[test]
命名你的包加上你想要的extra_require
块。
我不知道更好的方法,PYPA SampleProject似乎满足于在setup.py和tox.ini中指定测试依赖项。