在我现有的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 () {...});
}
};
});我相信这是因为它通常由node模块提供服务:
<script type="text/javascript" src='/socket.io/socket.io.js'></script>vs上面显示的我的socket.io工厂
<script type="text/javascript" src='js/services/socket-service.js'></script>有没有办法在不将socket.io.js文件复制到客户机代码库的情况下解决这个问题?
发布于 2013-11-05 10:46:11
确保在socket-service.js之前包含文件socket.io.js。您可以手动执行此操作,也可以使用诸如requirejs (http://www.requirejs.org)之类的模块加载器
https://stackoverflow.com/questions/19780948
复制相似问题