繁体   English   中英

angular-cli:Karma-Webpack保释'没有这样的文件或目录'

[英]angular-cli: Karma-Webpack bails with 'no such file or directory'

我开始使用标准Angular / systemjs Tour of HeroesTour of Heroes 现在我正在使用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

好的,所以我查看了我的Angular书并发现,必须在spec.ts声明所有(隐式)使用的组件。 当我使用app.component.spec.ts测试中央主组件时,这意味着使用它:

TestBed.configureTestingModule({
    imports: [
        RouterTestingModule
    ],
    declarations: [ // TODO: Mock some components!
        AppComponent, HeroListComponent, HeroDetailComponent,
        DashboardComponent, HeroSearchComponent, HeroAddComponent
    ],
}).compileComponents()

...而不仅仅是声明中的AppComponent

所以错误只不过是业力的(令人困惑的)说:“我需要加载组件,但不能使用它们,因为它们在这个测试用例中没有声明。”(如果我错了,请纠正我) 。

我知道,通常不应该测试所有子组件的“所有组件的母亲”。 相反,人们只会测试最小的集合或使用模拟。 但是,随着app.component.spec.ts的上述变化,vanilla ng-cli测试用例至少会立即运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM