You need to enable JavaScript to run this app. ngx-monaco-editor搭配Karma+Jasmine单测如何正确加载Monaco实例
优惠活动
大模型
产品
解决方案
定价
更多

ngx-monaco-editor搭配Karma+Jasmine单测如何正确加载Monaco实例

Karma + Jasmine 单元测试环境下 @materia-ui/ngx-monaco-editor 全局对象识别异常问题

问题基础场景

  • 业务应用中集成 @materia-ui/ngx-monaco-editor 组件,组件依赖的 monaco 类型定义直接由该库自身暴露的类型声明文件提供
  • 组件核心实现逻辑:注入 MonacoEditorLoaderService,通过 RxJS 流监听 monaco 加载完成状态,在加载完成的回调中调用 monaco.languages.json.jsonDefaults.setDiagnosticsOptions 方法配置 JSON 语言诊断参数
  • 异常表现:在 Karma + Jasmine 单元测试运行时,全局 monaco 对象始终无法被测试环境正常识别,抛出"monaco未定义"报错

已尝试的排查配置(均未生效)

  • 第一种配置:在 angular.json 的 test 段配置中,将 monaco-editor 的 editor.main.js 脚本加入 scripts 引入列表,配置完成后问题未改善
  • 第二种配置:未采用通过 MONACO_PATH 指向 CDN 加载 monaco 的方案,尝试在应用、测试项目的 assets 配置中,将 node_modules 下的 monaco-editor 目录映射到 assets/monaco-editor 静态路径,实际测试运行时该静态资源映射配置未生效,测试套件始终无法正常获取 monaco 实例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 11:36:05