Ich habe Winkelmesser Tests lokal gut laufen (DirectConnect: True), aber wenn ich versuche, sie auf einem Remote-Selenium-Server (Grid) laufen zu lassen, bekomme ich immer Folgendes Botschaft.Jasmine Spec Timeout beim Ausführen von Winkelmesser Tests auf einem Remote Selen Server
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
Mit Blick auf den Fehlern, die Nachricht und Stapel folgende für alle meine Testfälle angezeigt werden:
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)
ich eine Reihe von Dingen versucht habe, wie die Jasmin-Timeout-Zeit zu erhöhen, das Hinzufügen frühere Timeouts wie "getPageTimeout" und "allScriptsTimeout" für das conf, aber es löst immer noch den Jasmine-Timeout-Fehler aus. Das Protokoll zeigt den folgenden Fehler:
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]])
Ich weiß sicher, meine App ist eckig und es wird erfolgreich ausgeführt, wenn lokal ausgeführt wird. Ich habe versucht,
browser.ignoreSynchronization = true
Einstellung sowie die
rootElement='html#ng-app'
in der Conf-Einstellung (bc meine ng-App nicht im Körper, sondern vielmehr innerhalb des HTML-Tag). Framework ist auf 'Jasmin' eingestellt, obwohl ich 'Jasmine2' ausprobiert habe, aber keiner scheint einen Unterschied zu machen. Auf dem Remote-Server kann ich Firefox starten, und die Benutzeroberfläche zeigt mir die gestartete Firefox-Sitzung. Es sitzt jedoch nur dort, bis die Zeitüberschreitung auftritt. Irgendwelche Eingaben würden geschätzt werden!