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>
我在 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>