2017-01-10 39 views
2

我已经安装了ng-fullstack生成器并为Angular 2和Node选择了选项。除了测试以外,一切都很好玩。当我尝试执行测试时,他们失败了。我所做的任何搜索都告诉我,将zone.js降级到0.6.2将会解决问题,但是,由于Angular 2需要更高版本的Zone.js,因此我无法降级,所以我有点卡住了:使用Angular 2和节点不工作的Jasmine测试

@angular/[email protected] requires a peer of [email protected]^0.7.2 but none was installed. 

需要注意的是,当我第一次安装生成器时,它会安装一个较低版本的zone.js - 一个与获取测试工作兼容的版本(根据我的谷歌搜索)。如果我[email protected]^0.7.2执行测试中,我看到这个错误:

Chrome 55.0.2883 (Mac OS X 10.12.2) ERROR 
    Uncaught Error: Missing: SyncTestZoneSpec 
    at node_modules/zone.js/dist/jasmine-patch.js:43 

10 01 2017 15:34:26.123:WARN [web-server]: 404: /base/node_modules/@angular/core/testing.js 
10 01 2017 15:34:26.126:WARN [web-server]: 404: /base/node_modules/@angular/platform-browser-dynamic/testing.js 

[15:34:26] 'client.unit_test' errored after 2.47 s 

没有人有我要怎样才能让茉莉花测试工作有什么建议?我对这个有点困惑。提前致谢!

回答

0

您应该在您的测试配置文件中加载所有区域相关的文件。

例如,如果你使用的业力,你应该包括

'node_modules/zone.js/dist/zone.js', 
    'node_modules/zone.js/dist/long-stack-trace-zone.js', 
    'node_modules/zone.js/dist/proxy.js', 
    'node_modules/zone.js/dist/sync-test.js', 
    'node_modules/zone.js/dist/jasmine-patch.js', 
    'node_modules/zone.js/dist/async-test.js', 
    'node_modules/zone.js/dist/fake-async-test.js' 

在karma.conf.js文件块。

如果你使用节点,你也应该有一个polyfill文件,它定义了在测试开始之前所有的文件都会被加载,所以把上面的文件放在那个polyfill文件中。

+0

这些包括的顺序也很重要。 –

相关问题