噶将不会运行(socket.io抛出错误)

我有一个Angular 2项目,用Typescript编写。 我正试图让Travis CI成立。 不幸的是,我收到了来自Karma的错误:

丢失socket上的error handling程序。

TypeError:(msg ||“”).replace不是一个函数

预期的行为

我的Travis CI构build完成茉莉花unit testing定义,报告数量运行和成功与失败。

实际行为

这是我的构build日志的输出。 这是完整的生成日志。 另外, 这里是正在构build的完整的github存储库。

 [09:39:04] Starting 'client.unit_test'... 05 04 2016 09:39:04.281:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/ 05 04 2016 09:39:04.287:INFO [launcher]: Starting browser Chrome 05 04 2016 09:39:05.519:INFO [Chrome 49.0.2623 (Linux 0.0.0)]: Connected on socket /#7wcOJ3uFvZX-HgZeAAAA with id 49035067 Missing error handler on `socket`. TypeError: (msg || "").replace is not a function at /home/travis/build/georgeedwards/Gen-App/node_modules/karma/lib/reporter.js:45:23 at [object Object].onBrowserError (/home/travis/build/georgeedwards/Gen-App/node_modules/karma/lib/reporters/base.js:58:60) 

环境细节

节点v5.10.0

Angular 2.0.0-beta.12

 ├── karma@0.13.22 ├── karma-chrome-launcher@0.1.12 ├── karma-coverage@0.2.7 ├── karma-firefox-launcher@0.1.7 ├── karma-ie-launcher@0.1.5 ├── karma-jasmine@0.3.8 ├── karma-ng-html2js-preprocessor@0.1.2 ├── karma-opera-launcher@0.1.0 ├── karma-phantomjs-launcher@0.1.4 

任何想法可能导致这一点,或者什么信息,你可能需要debugging呢?

过去我曾经见过类似的问题。 99%的时间与不包含应用程序引用的karma.conf.js文件数组中的文件有关。

另一个可能的问题是模块名称没有正确地从它们各自的文件ref名称进行翻译。

这是我的karma-test-shim.js中的一个片段,我将文件名转换为模块名称:

 System.config({ packages: { 'base/wwwroot/app': { defaultExtension: false, format: 'register', map: Object.keys(window.__karma__.files). filter(function onlyAppFiles(filePath) { return /^\/base\/wwwroot\/app\/.*\.js$/.test(filePath) }). reduce(function createPathRecords(pathsMapping, appPath) { // creates local module name mapping to global path with karma's fingerprint in path, eg: var moduleName = appPath.replace(/^\/base\/wwwroot\/app\//, './').replace(/\.js$/, ''); pathsMapping[moduleName] = appPath + '?' + window.__karma__.files[appPath]; return pathsMapping; }, {}) } } }); 

我的项目的结构是:

 / karma.conf.js karma-test-shim.js wwwroot/ app/ //Angular 2 project and spec files 

Angular 2团队的开发者Julie Ralph拥有一个种子项目 ,用于为Angular 2项目build立业力testing,我发现在创build业力垫片时非常有帮助。