Angular 测试在初始化之前无法访问 Service

Ser*_*gey 6 unit-testing jasmine karma-runner karma-jasmine angular

我无法启动测试,因为它们一开始就因错误而失败

Chrome 83.0.4103.61 (Linux x86_64) ERROR
  An error was thrown in afterAll
  Uncaught ReferenceError: Cannot access 'SomeService' before initialization
  ReferenceError: Cannot access 'SomeService' before initialization

... stack trace
Run Code Online (Sandbox Code Playgroud)

事情是:

a) 这是一个单例服务并且providedIn: 'root'

b)堆栈跟踪指向任何地方(它甚至包括完全注释掉的测试文件,因此没有一行代码。

c) 因此其他测试无法启动

d) 由于测试量太大,我无法开始禁用测试来找到起点。

如何找到可能发生错误的位置以及可能导致此错误的原因?它可以连接到将 Karma、Jasmine 和规范记者更新到其软件包的最新版本吗?我正在使用 Angular 9

Ser*_*gey 9

看来这是由于项目的“年龄”所致。它是从 Angular 6 开始的。根据配置中的注释 emitDecoratorMetadata就是原因。删除后一切正常...