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

VS Code配置unittest后触发pytest测试发现问题求助

VS Code强制调用pytest而非配置的unittest框架进行测试发现

环境信息

  • VS Code版本:1.80.0、1.79.2、1.79.1(用户安装版)
  • Python扩展版本:v2023.12.0
  • Python版本:3.9.13、3.10.6、3.10.11
  • 系统:Windows 10 Version 22H2(OS Build 19045.3086)

复现步骤

严格遵循VS Code官方Python测试文档操作:

  1. 创建新文件夹并在VS Code中打开
  2. 创建inc_dec.py文件
  3. 使用纯净安装的Python 3.9+作为项目环境
  4. 添加tests文件夹,在其中创建test_unittest.py文件和空的__init__.py文件
  5. 配置Python测试:选择unittest框架、指定tests文件夹、匹配模式设为test_*.py

异常现象

尽管明确配置使用unittest,VS Code仍触发“Pytest Discovery Error”,Python输出日志显示实际执行了pytest命令:

2023-07-14 13:08:29.745 [info] Running discovery for unittest using the new test adapter.
2023-07-14 13:08:29.771 [info] > C:\Python\3.10.11\python.exe -m pytest -p vscode_pytest --collect-only

预期行为:unittest测试用例被正常发现,且支持调试。

已尝试的无效方案

  • 重启VS Code及系统
  • 回退至旧版VS Code
  • 更换不同Python版本
  • 使用此前正常工作的虚拟环境
  • 在PyCharm中可正常运行测试,但因Jupyter Notebook需求无法切换
  • 执行python -m unittest discover -v -s . -p "test_*.py"可正常运行测试,但IDE无法发现用例
  • 删除__pycache__文件夹
  • 移除并重新创建tests文件夹

额外说明

  • 现有旧项目仍能发现unittest测试,但调试时无法命中断点,运行测试时会报错子文件夹中的源文件
  • 调试普通Python文件可正常命中断点
  • PyCharm社区版可正常测试和调试,但不支持Jupyter Notebook,无法满足需求

解决方案尝试

1. 手动强制指定测试配置

在项目根目录的.vscode/settings.json中添加以下配置,明确禁用pytest、启用unittest:

{
    "python.testing.unittestEnabled": true,
    "python.testing.pytestEnabled": false,
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        "./tests",
        "-p",
        "test_*.py"
    ]
}

保存后重启VS Code,重新触发测试发现。

2. 降级Python扩展版本

当前使用的Python扩展v2023.12.0可能存在适配bug,尝试降级至更早版本:

  1. 打开VS Code扩展面板,找到Python扩展
  2. 点击扩展右侧齿轮图标,选择「Install Another Version...」
  3. 选择v2023.10.1版本安装,重启VS Code后测试

3. 关闭新测试适配器特性

日志显示使用了new test adapter,尝试禁用该实验性功能,在.vscode/settings.json中添加:

"python.testing.experimentalTestAdapter": false

保存后重启VS Code重新触发测试发现。

4. 检查并清理Python环境中的pytest

即使未主动安装,依赖可能间接引入pytest,执行命令检查:

pip list | findstr pytest

若存在pytest,执行卸载:

pip uninstall pytest -y

之后重启VS Code测试。

5. 重置工作区配置

删除项目根目录的.vscode文件夹(备份后操作),重新打开项目并配置unittest测试环境,避免旧配置干扰。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:27:34