我正在尝试使用PhantomJS和Karma在构建服务器上运行无头测试。构建服务器不使用Chrome,因此它们需要没有头绪。我之前从未与Karma合作过,所以我不喜欢使用教程来习惯它。我在使用此特定方法时遇到了错误:
this.manager.on('set:transports', function (key, value) {
delete self.cache['/socket.io.js'];
Object.keys(self.cache).forEach(function (key) {
if (bundle.test(key)) {
delete self.cache[key];
}
});
});
我的构建失败并显示以下消息:
TypeError:this.manager.on不是函数 在Static.init(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ karma \ node_modules \ socket.io \ lib \ static.js:148:16) 在新的静态(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ karma \ node_modules \ socket.io \ lib \ static.js:65:8) 在新的Manager(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ karma \ node_modules \ socket.io \ lib \ manager.js:68:15) 在Object.exports.listen(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ karma \ node_modules \ socket.io \ lib \ socket.io.js:78:10) 在createSocketIoServer(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ karma \ lib \ server.js:255:19) 在Array.invoke(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ di \ lib \ injector.js:75:15) 到达时(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ di \ lib \ injector.js:48:43) 在C:\ Users ******* \ Desktop \ karma2 \ node_modules \ di \ lib \ injector.js:71:14 在Array.map() 在Injector.invoke(C:\ Users ******* \ Desktop \ karma2 \ node_modules \ di \ lib \ injector.js:70:31) npm ERR!测试失败。有关更多详细信息,请参见上文。
经理在这里声明:
/**
* Static constructor
*
* @api public
*/
function Static (manager) {
this.manager = manager;
this.cache = {};
this.paths = {};
this.init();
}
我试图找到有关manager的文档,但似乎不存在。甚至在socket.io GitHub中,Manger所来自的文件static.js。不存在。使用npm install socket.io
更新socket.io的任何尝试都不会改变任何东西。