【问题标题】:Pytest run by test explorer of vscode does not find modules installed by pip in dev modevscode的测试资源管理器运行的pytest在开发模式下找不到pip安装的模块
【发布时间】:2021-03-13 14:28:00
【问题描述】:

通过在命令行中执行pytest,在开发人员模式下(pip install -e .)对使用pip 安装的项目代码运行测试确实有效。但是,使用 Visual Studio Code 的测试资源管理器 UI 在同一 Python virtualenv 中运行相同的测试不起作用,Python 会引发 ModuleNotFoundErrors。

我确认我的包是由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 中的那个。但是 sys.path 在测试资源管理器运行和命令行运行之间有所不同。测试资源管理器运行不包含sys.path 中的/path/to/myproject,而命令行运行包含。很明显,如果项目的路径包含在sys.path中,就可以导入包了。为什么测试资源管理器 UI 运行中缺少它?如何让Test Explorer使用pip在开发模式下安装的包?

我应该补充一点,我在测试中尝试导入的模块本身位于一个包中,称为mylib。所以我测试中的实际导入就像

from mylib import function_under_test


def test_function_under_test():
    ...

【问题讨论】:

    标签: python visual-studio-code pip pytest


    【解决方案1】:

    更多地摆弄这个问题,我发现这是 vscode 的 Python 扩展中的一个错误,参见。问题 github.com 上的1457914570

    作为一种解决方法,您可以安装 Little Fox Team Test Explorer UI extension,或旧版本的 Microsoft Python 扩展 (v2020.9.114305)。

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 1970-01-01
      • 2019-02-12
      • 2015-08-24
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多