我从Tour of Heroes开始使用标准的角度/系统the。现在我使用的是angular-client,它在dev/prod模式下运行平稳。但是我不能用ng test测试任何东西。下面的内容将被抛出(不仅是对于test.ts,也适用于polyfills.ts)。
code: 'ENOENT',
errno: 34,
message: 'no such file or directory',
path: '/_karma_webpack_/src/test.ts' }当我使用ng启动一个空白项目时,当我将一些组件放入app-routing.module.ts中时,我无法真正地跟踪它,出现了错误。很肯定,我错过了一些显而易见的事情,所以我对此表示歉意。
如果您真的喜欢深入研究代码(或尝试运行测试):https://github.com/ckpinguin/angular-tour-of-heroes
附加信息:在出现上述错误之前,每个组件都会出现这样的消息失败。我不知道为什么,因为我可以顺利运行应用程序。
ERROR in ./src/app/heroes/hero-list.component/hero-list.component.ts
Module build failed: TypeError: Cannot read property 'getChildAt' of undefined
at refactor.findAstNodes.filter.forEach (/home/axcka01/projects/angular/tour-of-heroes/node_modules/@ngtools/webpack/src/loader.js:221:54)
at Array.forEach (native)
at _removeModuleId (/home/axcka01/projects/angular/tour-of-heroes/node_modules/@ngtools/webpack/src/loader.js:215:10)
at Promise.resolve.then.then (/home/axcka01/projects/angular/tour-of-heroes/node_modules/@ngtools/webpack/src/loader.js:298:33)
at process._tickCallback (internal/process/next_tick.js:103:7)
@ ./src/app/app.module.ts 19:30-89
@ ./src/main.ts
@ multi ./src/main.ts发布于 2017-03-17 15:37:37
好的,我查看了我的角度书,发现所有(隐式)使用的组件都必须在spec.ts中声明。当我使用app.component.spec.ts测试中央主组件时,这意味着使用以下内容:
TestBed.configureTestingModule({
imports: [
RouterTestingModule
],
declarations: [ // TODO: Mock some components!
AppComponent, HeroListComponent, HeroDetailComponent,
DashboardComponent, HeroSearchComponent, HeroAddComponent
],
}).compileComponents()在声明中只包含...instead的AppComponent!
因此,这个错误只不过是业力的(混淆)方式:“我需要加载组件,但不能使用它们,因为在这个测试用例中没有声明它们。”(如果我错了,请纠正我)。
我知道,通常我们不应该用所有的子组件测试“所有组件的母亲”。相反,我们只会测试最小的集合或使用模拟。但是随着app.component.spec.ts的上述变化,至少现在运行的是普通的ng-cli测试用例。
https://stackoverflow.com/questions/42648589
复制相似问题