You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode升级后无法调试运行Python单元测试问题求助

VSCode升级至1.80.1后Python单元测试调试模块找不到问题

我近期将VSCode从1.78.X版本升级至1.80.1后,突然无法在调试模式下运行编写的Python单元测试。

我的Python包结构如下:

myPackage/
|-- myPackage/
|   |-- __init__.py
|   |-- example.py
|   |-- module1/
|   |   |-- __init__.py
|   |   |-- ...
|-- test/
|   |-- __init__.py
|   |-- test_utils.py
|   |-- test_example.py
|   |-- module1/
|   |   |-- __init__.py
|   |   |-- ...

|-- config files...
|-- README

在test_example.py测试文件中,我使用如下导入语句:

from test.test_utils import magic_function
from myPackage.module1.system import Subsystem

通过VSCode GUI运行测试一切正常,但调试模式下会抛出ModuleNotFoundError: No module named test.test_utils,调整导入顺序后又会出现ModuleNotFoundError: No module named myPackage。

我不想在100+且仍在增加的测试文件中硬编码sys.path.append(...),此前在VSCode 1.78.X版本中该代码可正常运行。是否有适配调试模式的新设置?

我的工作区文件夹中有launch.json和settings.json文件,尝试修改调试测试配置:
旧配置:

{
  "version": 0.2.0,
  "configurations": [
    {
      "name": "Debug Unit Test",
      "type": "python",
      "request": "test",
      "justMyCode": false
    }
  ],
  "compounds": []
}

其中request属性"test"似乎已失效,我将其改为"launch",并尝试添加"cwd"属性("$(workspaceFolder)"),但均无效果。


解决方案

1. 配置工作区Python路径(settings.json)

在工作区的settings.json中添加以下配置,将项目根目录加入Python路径搜索列表:

{
  "python.analysis.extraPaths": ["${workspaceFolder}"],
  "python.testing.cwd": "${workspaceFolder}"
}

该配置会让VSCode的Python插件在运行和调试测试时,自动把外层myPackage目录(工作区根目录)加入sys.path,确保test和myPackage两个包都能被正确识别。

2. 调整launch.json调试配置

放弃失效的request: "test",改用针对单元测试的具体调试配置,分两种测试框架举例:

若使用pytest:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Pytest",
      "type": "python",
      "request": "launch",
      "module": "pytest",
      "args": ["test/test_example.py"], // 可指定单个文件或整个test目录
      "justMyCode": false,
      "cwd": "${workspaceFolder}"
    }
  ]
}

若使用unittest:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Unittest",
      "type": "python",
      "request": "launch",
      "module": "unittest",
      "args": ["test.test_example"], // 用模块路径而非文件路径
      "justMyCode": false,
      "cwd": "${workspaceFolder}"
    }
  ]
}

3. 验证Python解释器一致性

检查VSCode右下角状态栏显示的Python解释器,确保和运行测试时使用的是同一个环境。VSCode升级后可能会重置解释器选择,导致路径识别异常。

4. 标准项目结构配置(长期解决方案)

在项目根目录创建pyproject.toml文件,添加以下内容:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "myPackage"
version = "0.1.0"

然后在终端执行pip install -e .,将项目以可编辑模式安装到Python环境中。这样Python会自动把项目根目录加入site-packages,无论运行还是调试都能直接识别所有包,彻底解决路径问题,这也是Python项目的标准实践。


内容的提问来源于stack exchange,提问作者SimonV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:26:00