SystemJS+Typescript环境下的Jasmine异步启动

Jasmine asynchronous boot in SystemJS+Typescript environment

我在 SystemJS+Typescript 环境中 运行ning Jasmine 测试(基本上 a plunk 应该是 Angular 2 测试装备)。

Jasmine 被有意用作全局库,而不是通过 TypeScript import

这导致

No specs found

控制台没有错误,规格只是没有 运行:

main.ts

describe('test', () => {
  it('test', () => {
    console.log('test');
    expect(1).toBe(1);
  });
});

我肯定这是因为 main.ts 是与 SystemJS 异步加载的,因此应该额外触发 Jasmine 引导程序以使其符合规格。

手册描述了什么是default boot configuration in Jasmine,但没有很好地解释如何手动启动。

在这种情况下 运行 使用 SystemJS 和全局 Jasmine 进行测试的方法是什么?

原因是您的规范是在 jasmine 尝试搜索并执行它们之后加载的。

要解决此问题,您可以在 system.js 加载规范后再次调用 window.onload

<script>
  System.import('app').then(window.onload).catch(console.error.bind(console));
</script>