VSCode无法从虚拟环境正确运行pytest

时间:2020-10-29 10:29:05

标签: python visual-studio-code pytest

我刚刚发现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脚本(不是在全局安装,仅在此环境中安装)。

有什么想法吗?

关于托马斯

1 个答案:

答案 0 :(得分:2)

我在路径设置上玩了一点。通过使用pytest的完整路径作为工作空间设置,它终于开始工作了。

"python.testing.pytestPath": "/home/thomas/.virtualenvs/edis/bin/pytest"

不要问我,即使pytest在虚拟环境的路径中,VSCode为什么也不能正常工作。

关于托马斯