VSCode Jest扩展测试状态图标异常,仅显示播放图标求助
VSCode Jest扩展无法显示测试结果图标问题
之前使用VSCode的Jest扩展时,运行测试后describe和it语句旁会根据结果显示成功/失败图标,但现在仅显示播放图标,无法直观查看测试状态。
成功/失败图标示例:
当前仅显示的播放图标:
我的jest.config.js配置如下:
/** @type {import('ts-jest').JestConfigWithTsJest} */ const path = require("path"); module.exports = { preset: 'ts-jest', testEnvironment: 'node', transform: { "^.+\\.(t|j)sx?$": ["@swc/jest"], }, testMatch: [ path.resolve("./tests/**/*.(test|spec).ts") ] }
我已经尝试过以下操作但未解决问题:
- 卸载并重新安装该扩展
- 安装扩展的旧版本:5.0、4.6、4.4、4.21
- 移除所有扩展
- 重置所有VSCode配置
- 卸载并重新安装VSCode
- 在settings.json中设置不同的扩展配置值
- 安装Jest Test Explorer扩展
可能的解决方法
检查Jest扩展是否正确识别测试运行
打开VSCode的「输出」面板,切换到「Jest」频道,查看是否有测试执行的日志输出。如果没有日志,说明扩展没有正确触发或识别测试运行,可手动触发全量测试(快捷键Ctrl+Shift+P执行Jest: Run All Tests)验证。调整
testMatch路径配置
尝试替换path.resolve为相对路径,避免路径解析冲突:testMatch: [ "./tests/**/*.(test|spec).ts" ]或结合
rootDir配置路径:module.exports = { // ...其他配置 rootDir: __dirname, testMatch: [ "<rootDir>/tests/**/*.(test|spec).ts" ] }排查
@swc/jest与扩展的兼容性
当前配置同时使用ts-jestpreset和@swc/jesttransform,可能存在冲突。可尝试两种调整:- 移除
preset: 'ts-jest',仅保留@swc/jest配置:module.exports = { testEnvironment: 'node', transform: { "^.+\\.(t|j)sx?$": ["@swc/jest"], }, testMatch: [ "./tests/**/*.(test|spec).ts" ] } - 换回
ts-jest的transform,验证是否为swc适配问题:module.exports = { preset: 'ts-jest', testEnvironment: 'node', transform: { "^.+\\.(t|j)sx?$": "ts-jest", }, testMatch: [ "./tests/**/*.(test|spec).ts" ] }
- 移除
检查VSCode测试视图状态
打开VSCode左侧「测试」面板,查看是否能加载出测试用例列表。如果测试用例可正常加载但图标不显示,可能是扩展UI渲染问题;如果测试用例无法加载,需检查文件命名是否符合testMatch规则。查看扩展诊断日志
在settings.json中添加"jest.debug": true开启详细日志,重新运行测试后,查看「输出」面板的「Jest」频道,查找路径解析错误、依赖缺失等具体问题。
内容的提问来源于stack exchange,提问作者ccencisoj
相关产品推荐
相关产品推荐

