业力:移动文件夹->套接字上缺少错误处理程序?

Posted

技术标签:

【中文标题】业力:移动文件夹->套接字上缺少错误处理程序?【英文标题】:Karma: Move Folder -> Missing Error Handler on Socket? 【发布时间】:2016-06-27 10:26:38 【问题描述】:

我有一组有效的单元测试,用于由 Karma 0.13.22 运行的 Angular 2.0 项目,使用 Socket.io 1.4.5 连接到 Chrome 48 浏览器。我在此配置下进行测试,结果有效:

app/
tests/app
karma-test-shim.js
karma.conf.js

然后,在不更改任何代码的情况下,我移动了一个文件夹:

source/app/
tests/app
karma-test-shim.js
karma.conf.js

...然后我用新路径更新了karma-test-shim.js 和karma.conf.js。

现在测试甚至没有运行,我得到了这个错误:

Missing error handler on `socket`.
TypeError: (msg || "").replace is not a function
  at /home/spryno724/projects/portfolio/node_modules/karma/lib/reporter.js:45:23
  at onBrowserError (/home/spryno724/projects/portfolio/node_modules/karma/lib/reporters/base.js:58:60)
  ... more stack trace ...

11 03 2016 20:24:11.038:WARN [Chrome 48.0.2564 (Windows 10 0.0.0)]: Disconnected (1 times)

知道是什么原因造成的吗? 唯一改变的是文件夹路径。


来自karma.conf.js的样本

files: [
  // Load Angular 2 dependencies and the SystemJS shim
   pattern: 'node_modules/angular2/bundles/angular2-polyfills.js', included: true, watched: true ,
   pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: true ,
   pattern: 'node_modules/rxjs/bundles/Rx.js', included: true, watched: true ,
   pattern: 'node_modules/angular2/bundles/angular2.dev.js', included: true, watched: true ,
   pattern: 'node_modules/angular2/bundles/testing.dev.js', included: true, watched: true ,
   pattern: 'karma-test-shim.js', included: true, watched: true ,

  // The application and test files
   pattern: 'source/app/**/*.js', included: false, watched: false ,
   pattern: 'test/unit/app/**/*.js', included: false, watched: false ,

  // Support for debugging sessions
   pattern: 'source/app/**/*.ts', included: false, watched: false ,
   pattern: 'test/unit/app/**/*.js.map', included: false, watched: false 
]

【问题讨论】:

您是否更新了 karma.conf 以查看源/应用程序? @MorganG 是的,我更新了 karma.conf:gist.github.com/oliver-spryn/0baef42e8f18174125c2 这是我做的第一件事。不知道你说的第二个问题是什么意思。 我认为这是 Socket.IO 的一个问题,看起来其他人在这个较新版本的 0.13.18 中也遇到了同样的问题。 github.com/karma-runner/karma/issues/1782 虽然不是完全相同的问题,但有人报告说仅在 4 小时前使用套接字再次遇到问题。希望有人能对此给出一个好的答案,因为这很奇怪。 这有什么更新吗?我可以 1:1 重现问题,但目前也在寻找解决方案。 有人找到解决方案吗? 【参考方案1】:

通过https://github.com/oliver-spryn/portfolio 联系您的项目

您可以尝试更改您的 karma-test-shim.js。在 System.config 下,将 format: 'register' 更改为 format: 'cjs'。

我复制了你的 karma.conf.js + karma-test-shim.js 并创建了简单的项目来模拟你遇到的问题(上面有修复)。 https://github.com/phhoangbao/angular2-test

【讨论】:

以上是关于业力:移动文件夹->套接字上缺少错误处理程序?的主要内容,如果未能解决你的问题,请参考以下文章

karma config将文件移动到基 目录

RSpec 测试失败 - 使用显示套接字但缺少锁定文件

针对订户错误的 Angular 2 业力单元测试

无法在 Windows 上安装业力

windows套接字注册表项问题

修复 mac 上缺少 mysql.sock 文件的问题?