我通过运行 ng g c components/foo
使用 angular CLI (v6.1.4) 在我的组件文件夹中生成了一个组件然后运行 ng test
.新组件的测试失败并出现以下错误:
Zone is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/zone.js thrown
Error: Illegal state: Could not load the summary for directive FooComponent.
奇怪的是,如果我运行
ng g c foo
(即,它不会在 components 文件夹中生成),然后测试通过。我的测试都适用于其他文件夹,但这是我的组件文件夹中的第一个测试(也是组件的第一个测试)。其他测试都不是异步的。我对
ng test
还很陌生所以我可能会遗漏一些非常明显的东西。我没想到需要用 zone.js
设置任何东西用于运行默认测试。我应该在哪里配置它?或者还有什么我在这里遗漏的,也许是我的 components
特有的东西文件夹?
最佳答案
将以下内容添加到 foo.component.spec.ts
的顶部解决了这个问题,但我仍然不明白如果测试不在 components
中,为什么它们会起作用。文件夹。如果有人有解释,或者解决方案不涉及在每个组件的测试文件中重复这一点,我很乐意听到!
import 'zone.js';
import 'zone.js/dist/async-test.js';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
关于angular - 如果在特定文件夹中,由 angular CLI 生成的测试将失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535504/