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

使用Automerge包时Karma-Jasmine无法识别全部Angular单元测试

问题描述

使用Karma运行器时遇到异常:执行ng test命令无法识别全部单元测试。

复现步骤

已创建StackBlitz示例项目用于复现问题:

  1. 查看正常运行状态:执行以下命令
cd my-workspace
ng test lib2

此时Karma页面会显示正常的测试结果。
2. 触发问题:取消lib2.component.ts中以下代码的注释,若页面未自动刷新则手动刷新或重新执行ng test lib2命令

const appState: App2State = {
  doc: Automerge.from({
    name: 'test3',
    data: [],
  }),
  syncState: Automerge.initSyncState(),
};
异常表现
  • 有时会抛出错误:Unhandled promise rejection: Error: 'describe' should only be used in 'describe' function
  • 有时仅未使用Automerge包的单元测试能正常运行(实际项目中多出现此情况)
  • 移除所有Automerge相关调用(from()、initSyncState())后,单元测试恢复正常,已排除缓存问题(已清理Angular和浏览器缓存)
更新补充

即使在组件中直接使用Automerge包,对应的单元测试也不会执行。另有StackBlitz示例项目可复现此场景:
取消app.component.ts中以下代码注释并执行ng test,Karma中无任何测试显示;注释该代码则能看到3个AppComponent单元测试:

const test = from({
  test: 'test',
});

已在Karma仓库提交Issue(编号#3836)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:37:21