我刚刚发现vscode可以直接在编辑器之外运行pytest。那真是太棒了-如果可以的话。
当前,我正在一个虚拟环境中的项目上,该项目已在vscode中正确配置(并已激活)。 pytest已安装在虚拟环境中并也被激活,我写的测试已按预期被发现。但是,每当我运行测试时,它都会说,它找不到我当前正在使用的模块,并且引发了ModuleNotFoundError
。
我已经用pip install -e .
安装了此模块。在vscode之外的普通终端控制台上运行相同的测试,效果与预期的一样。
如果仅对workpache和/或用户启用pytest,则不会有任何区别。
示例代码:
def test_something():
from mymodule.config import Config
...
输出:
E ModuleNotFoundError: No module named 'mymodule'
点样本输出:
mymodule 0.1.0 /path/to/mymodule
Stange也是,vscode使用所有已安装的插件(即pytest-datafiles)运行正确的pytest脚本(不是在全局安装,仅在此环境中安装)。
有什么想法吗?
关于托马斯
答案 0 :(得分:2)
我在路径设置上玩了一点。通过使用pytest的完整路径作为工作空间设置,它终于开始工作了。
"python.testing.pytestPath": "/home/thomas/.virtualenvs/edis/bin/pytest"
不要问我,即使pytest在虚拟环境的路径中,VSCode为什么也不能正常工作。
关于托马斯