【发布时间】:2017-07-24 00:50:35
【问题描述】:
我真的不知道发生了什么,但是在测试我的 Angular 代码时我的行为非常奇怪。我只是在进行设置,大多数事情都可以正常工作,但如果我在 TestBed.configureTestingModule 的声明中定义了子组件,则不会。 describe 中的第一个测试有效,该测试之后的所有其他测试,即使在另一个文件中,也不再有效,因为 fixture = TestBed.createComponent(component);没有被执行(我假设,因为夹具是未定义的)
当然,我在某个地方犯了一个大错误,但是在哪里? 我这里有一个项目,你可以看到所有的设置。
https://github.com/damirkusar/AngularMeetsNetCore/tree/AngularTesting 而这个类解决了问题:navigation.spec.ts
这是在 navigation.specs 之后出现的测试错误示例。删除 navigation.spec 测试以下测试有效。
Chrome 56.0.2924 (Windows 10 0.0.0) NewsRoomComponent news property undefined FAILED
TypeError: Cannot read property 'push' of undefined
at karma.testshim.config.js:104193:37
at Array.forEach (native)
at new UniversalModule (karma.testshim.config.js:104191:16)
at DynamicTestModuleInjector.createInternal (/DynamicTestModule/module.ngfactory.js:342:
29)
at DynamicTestModuleInjector.NgModuleInjector.create (karma.testshim.config.js:52595:76)
at NgModuleFactory.create (karma.testshim.config.js:52561:18)
at TestBed._initIfNeeded (karma.testshim.config.js:34188:82)
at TestBed.createComponent (karma.testshim.config.js:34257:18)
at Function.TestBed.createComponent (karma.testshim.config.js:34086:33)
at MainSpec.init (karma.testshim.config.js:15618:42)
at Object.<anonymous> (karma.testshim.config.js:111972:20)
at ZoneDelegate.invoke (karma.testshim.config.js:83750:26)
at ProxyZoneSpec.onInvoke (karma.testshim.config.js:83316:39)
at ZoneDelegate.invoke (karma.testshim.config.js:83749:32)
at Zone.run (karma.testshim.config.js:83546:43)
at Object.<anonymous> (karma.testshim.config.js:83031:34)
at ZoneQueueRunner.jasmine.QueueRunner.ZoneQueueRunner.execute (karma.testshim.config.js
:83061:42)
at ZoneDelegate.invokeTask (karma.testshim.config.js:83783:31)
at Zone.runTask (karma.testshim.config.js:83586:47)
at drainMicroTaskQueue (karma.testshim.config.js:83949:35)
TypeError: Cannot read property 'news' of undefined
at Object.<anonymous> (karma.testshim.config.js:111978:35)
at ZoneDelegate.invoke (karma.testshim.config.js:83750:26)
at ProxyZoneSpec.onInvoke (karma.testshim.config.js:83316:39)
at ZoneDelegate.invoke (karma.testshim.config.js:83749:32)
at Zone.run (karma.testshim.config.js:83546:43)
at Object.<anonymous> (karma.testshim.config.js:83031:34)
at ZoneQueueRunner.jasmine.QueueRunner.ZoneQueueRunner.execute (karma.testshim.config.js
:83061:42)
at ZoneDelegate.invokeTask (karma.testshim.config.js:83783:31)
at Zone.runTask (karma.testshim.config.js:83586:47)
at drainMicroTaskQueue (karma.testshim.config.js:83949:35)
Chrome 56.0.2924 (Windows 10 0.0.0): Executed 12 of 12 (3 FAILED) (1.334 secs / 1.263 secs)
npm ERR! Test failed. See above for more details.
【问题讨论】:
-
我该如何解决这个问题? :)
-
:) 我的页面上没有更新 :) 非常感谢你.. 你是我的英雄.. 尝试了很多东西.. 非常感谢.. 现在有一些理解问题..你是怎么调试的?:) 你在下面有什么样的看法?
标签: angular testing webpack karma-runner angular-universal