【发布时间】:2014-08-08 15:56:59
【问题描述】:
tox website 中列出的第一个功能是“使用不同的 Python 版本和解释器检查您的包是否正确安装”。这让我觉得如果我搞砸了我的 setup.py,测试将不会通过,我会收到我的 setup.py 变坏的警报。
事实并非如此。事实上,如果您按照通常的模式将模块或包放在与 tox.ini 相同的目录中,则代码是从本地目录(又名 {toxinidir})导入的。这意味着你可以让你的 setup.py 绝对不做任何事情,并且 tox 会告诉你它很好。那时,很容易直到你推送到 pypi 并尝试使用它之后才注意到问题。这是我希望 tox 预防的问题。
主要问题是空字符串在测试期间出现在 sys.path 上。 Python 将其解释为当前工作目录并从那里导入。
有没有办法配置 tox 使得测试期间不使用本地目录?
目前我的解决方法是cd {envtmpdir} && coverage run && mv .coverage {toxinidir},但这显然是一个丑陋的黑客。
这里我提供了我们代码的两个版本:
我的目标是找到一个避免上述问题的tox配置,并且足够合理,可以推荐用于所有项目。
【问题讨论】: