Python vscode的测试资源管理器运行的Pytest在开发模式下找不到pip安装的模块
在开发人员模式下(Python vscode的测试资源管理器运行的Pytest在开发模式下找不到pip安装的模块,python,visual-studio-code,pip,pytest,Python,Visual Studio Code,Pip,Pytest,在开发人员模式下(pip install-e.)对使用pip安装的项目代码运行测试通过从命令行执行pytest来实现。但是,使用Visual Studio代码的测试资源管理器UI在同一Pythonvirtualenv中运行相同的测试不起作用,Python会引发ModuleNotFoundErrors 我确认我的软件包是由pip list-v安装的,它打印: myproject 0.0.0 /path/to/myproject 此外,我编写了失败测试以在测试执行期
pip install-e.
)对使用pip安装的项目代码运行测试通过从命令行执行pytest
来实现。但是,使用Visual Studio代码的测试资源管理器UI在同一Pythonvirtualenv
中运行相同的测试不起作用,Python会引发ModuleNotFoundError
s
我确认我的软件包是由pip list-v
安装的,它打印:
myproject 0.0.0 /path/to/myproject
此外,我编写了失败测试以在测试执行期间获取Python路径:
import sys
def test_some_test():
print(sys.executable)
print(sys.path)
assert False
这确认Python可执行文件是安装我的项目代码的virtualenv
中的可执行文件。但是testexplorer运行和命令行运行之间的sys.path
不同。testexplorer运行不包括sys.path
中的/path/to/myproject
,而命令行运行则包括。显然,如果项目的路径包含在sys.path
中,则可以导入包。为什么测试资源管理器UI运行中缺少它?如何使测试资源管理器使用在开发模式下安装的带有pip
的软件包
我应该补充一点,我试图在测试中导入的模块本身就在一个名为mylib
的包中。因此,我测试中的实际导入如下
from mylib import function_under_test
def test_function_under_test():
...
我更仔细地研究了这个问题,发现这是针对vscode的Python扩展中的一个bug,cf.issues
,并在github.com上发布
作为一项解决方案,您可以安装Little Fox团队,也可以安装旧版本的Microsoft Python扩展(v2020.9.114305)。更多地摆弄这个问题,我发现这是针对vscode的Python扩展中的一个bug,请参阅
,并在github.com上发布
作为解决方案,您可以安装Little Fox团队,也可以安装旧版本的Microsoft Python扩展(v2020.9.114305)