使用现有的 Angular 应用程序设置 E2E 测试时,由于我在应用程序中使用 socket.io,因此无法启动。Protractor 找不到通常由节点模块提供的 socket.io 文件,因为它不是我个人代码的一部分。
我收到错误消息:
UnknownError: Error Message => 'Can't find variable: io'
在角度方面:
angular.module('socket.io', []).factory(function($rootScope) {
var socket = io.connect(); // I believe the error is being thrown from here
return {
on: function (eventName, callback) {
socket.on(eventName, function () {...});
},
emit: function (eventName, data, callback) {
socket.emit(eventName, data, function () {...});
}
};
});
我相信这是因为它通常由节点模块提供服务:
<script type="text/javascript" src='/socket.io/socket.io.js'></script>
与上面显示的我的 socket.io 工厂相比
<script type="text/javascript" src='js/services/socket-service.js'></script>
有没有办法在不将 socket.io.js 文件复制到客户端代码库的情况下解决这个问题?