我有在本地运行正常的Protractor测试(directConnect:true),但是当我尝试在远程Selenium服务器(网格)上运行它们时,我总是得到以下信息。在远程硒服务器上运行量角器测试时Jasmine spec超时
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
望着失败,消息和堆栈显示我的所有测试用例如下:
Message:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Stack:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
at Timer.listOnTimeout (timers.js:92:15)
我已经尝试了一些东西,如增加茉莉超时间隔,增加早期的超时,如getPageTimeout和allScriptsTimeout到conf,但它仍然会引发茉莉花超时错误。该日志显示了以下错误:
00:03:18.328 INFO - Done: [execute async script: try { return (function (rootSelector, ng12Hybrid, callback) {
var el = document.querySelector(rootSelector);
try {
if (!ng12Hybrid && window.getAngularTestability) {
window.getAngularTestability(el).whenStable(callback);
return;
}
if (!window.angular) {
throw new Error('window.angular is undefined. This could be either ' +
'because this is a non-angular page or because your test involves ' +
'client-side navigation, which can interfere with Protractor\'s ' +
'bootstrapping. See http://git.io/v4gXM for details');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body, false]])
我肯定知道我的应用程序的角度,它在本地运行时成功运行。我试过设置
browser.ignoreSynchronization = true
,以及设置
rootElement='html#ng-app'
在conf
(BC我的NG-应用程序是不是身体,而是在html标签内)。虽然我尝试过'jasmine2',但框架设置为'茉莉',但两者似乎都没有什么区别。在远程服务器上,我能够启动Firefox,UI显示启动的Firefox会话。然而,它只是在那里超时发生。任何输入将不胜感激!