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

如何为Office Excel AddIn配置Karma和Jasmine并解决页面重载问题

错误原因

该错误是Karma运行测试过程中浏览器上下文被强制刷新/跳转导致的,你的场景下核心诱因是加载的线上office.js在普通Chrome(非Office宿主环境)运行时,自带的宿主检测逻辑会触发页面跳转,破坏了Karma的测试运行上下文。

解决方案

  • 替换线上Office.js为本地Mock版本
    不要直接加载线上的office.js,新建本地Mock文件模拟Office初始化逻辑,避免跳转逻辑触发。示例Mock文件test/office-mock.js内容如下:
window.Office = {
  initialize: () => {
    document.dispatchEvent(new Event("Office.initialize"));
  },
  // 可按需补充你用到的Excel相关API Mock
  context: {
    workbook: {}
  }
};
// 立即触发初始化完成事件
window.Office.initialize();

修改karma.conf.js的files配置,替换Office.js引入路径:

files: [
  'test/office-mock.js',
  'src/**/**.spec.ts'
],
  • 修正预处理规则
    你当前配置会给所有.ts文件(包括测试用例文件)注入coverage插桩代码,插桩逻辑可能带来额外全局副作用,修改规则仅对业务代码做插桩:
preprocessors: {
  // 仅匹配非.spec后缀的业务ts文件
  'src/**/!(*.spec).ts': ["karma-typescript", 'coverage']
},
  • 修正配置拼写错误+添加上下文校验宽松配置
    你原配置中jasmine配置项存在拼写错误,同时可添加配置放宽Karma的上下文跳转校验:
client: {
  clearContext: false,
  runInParent: true,
  jasmine: {
    random: false,
    seed: '0',
    // 修正原拼写错误 stopOnFailue -> stopOnFailure
    stopOnFailure: false
  }
},
crossOriginAttribute: false,

完成以上修改后重启Karma即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:57:00