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

VSCode无法识别抛出异常的单元测试,显示0/0通过,如何解决?

问题:VSCode Python单元测试无法正确显示失败结果

开发环境

vscode 1.80.1
python 3.10
python extension for vscode v2023.12.0

测试文件代码

import unittest

class MyTestCase(unittest.TestCase):

    def test_say_hello(self) -> None:
        raise Exception("test")

VSCode设置

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

问题现象

运行测试时,预期VSCode会因代码抛出的异常显示测试失败,但实际测试面板显示“0/0测试通过”;若之前测试通过,还会保留绿色标记。测试结果面板仅显示“Finished running tests!”,无其他输出。调试模式下能看到错误输出,但仍不标记测试失败。手动在VSCode外运行单元测试可正常显示错误。


解决方案
  • 核对测试文件路径与命名:确认测试文件放在./runner目录下,且文件名符合test_*.py规则。如果文件位置或命名不匹配,VSCode的测试探索器会找不到测试用例,导致显示0测试。
  • 刷新测试探索器:点击VSCode测试面板顶部的刷新按钮,强制重新扫描所有测试文件,避免缓存导致的测试用例不更新。
  • 统一Python解释器:检查VSCode左下角状态栏显示的Python版本,确保和你手动运行测试时使用的解释器一致。环境不一致可能导致测试解析异常。
  • 调整unittest参数:尝试简化或修正unittestArgs配置,比如用绝对路径${workspaceFolder}/runner替代相对路径./runner,避免路径解析问题。示例配置:
    {
        "python.testing.unittestArgs": [
            "-s",
            "${workspaceFolder}/runner",
            "-p",
            "test_*.py"
        ],
        "python.testing.pytestEnabled": false,
        "python.testing.unittestEnabled": true
    }
    
  • 清除测试缓存:打开命令面板(Ctrl+Shift+P),执行Python: Clear Test Cache命令,清除旧缓存后重新运行测试。
  • 更新Python扩展:检查VSCode扩展市场是否有Python扩展的更新版本,新版本可能修复了测试解析相关的Bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:32:43