我有一个Angular 2项目,用Typescript编写.我想让Travis CI成立.不幸的是,我收到了来自Karma的错误:
Missing error handler on
socket
.TypeError: (msg || “”).replace is not a function
预期的行为
我的Travis CI构建完成了定义的Jasmine Unit测试,报告了运行次数和成功与失败.
实际行为
这是我的构建日志的输出. Here是完整的构建日志.此外,here是正在构建的完整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
可能导致此问题的任何想法,或者您可能需要调试此信息的信息?
解决方法
我在过去看过类似的问题. 99%的时间与应用程序引用的karma.conf.js文件数组中不包含文件有关.
另一个可能的问题是模块名称没有从它们各自的文件引用名称正确翻译.
这是我的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,e.g.: 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拥有一个seed project用于为Angular 2项目设置业力测试,我发现在创建业力垫片时非常有帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。