是否可以在依赖于PyQt5的包中遵循Good Integration as http://pytest.org/latest/goodpractices.html? (我使用的是Ubuntu 14.04,不知道这是否会影响)
我使用两种建议的方法得到以下内容:
$ python3 setup.py test
running test
Searching for pyqt5
Reading https://pypi.python.org/simple/pyqt5/
No local packages or download links found for pyqt5
error: Could not find suitable distribution for Requirement.parse('pyqt5')
我可以pip3 install pyqt5
,这就是我将pyqt5放在setup.py
中的原因。在命令行中运行py.test
也可以。
答案 0 :(得分:1)
在命令行中运行py.test
可在当前的Python环境中执行测试。
运行python3 setup.py test
(使用pytest-runner符合pytest'良好的集成实践')会创建一个伪virtualenv。它将任何缺少的依赖项作为egg(将它们存储在 .eggs 目录中)引入,然后在上述环境中执行测试。
要明确,py.test
和python3 setup.py test
会做不同的事情。
为了说明这两个命令之间的区别,这里有几个场景:
py.test
- 启动pytest,你的测试可能因为PyQt5不可导入而失败pip3 install PyQt5 && py.test
- 在当前环境中安装PyQt5的bdist_wheel然后启动pytest,你的测试可能会成功python3 setup.py test
- 启动pytest-runner,检查 setup.py 中的依赖项,确定PyQt5不可用,尝试拉入一个鸡蛋(但不能像PyQt5那样只有可用作bdist_wheel,而不是源代码分发),然后吐出错误消息并退出pip3 install PyQt5 && python3 setup.py test
- 在当前环境中安装PyQt5的bdist_wheel然后启动pytest-runner,检查 setup.py 中的依赖项,确定所有依赖项都可用,启动pytest和测试大概是成功的简单的答案是否定的,不可能做你所要求的。无论如何,您需要在运行测试之前将PyQt5安装到环境中。