2017-05-04 1 views
0

ich meine gherkin Tests mit einem hartkodierte URL aktuell laufenden browser.url("http://www.x.com");Wie kann ich eine URL von der Kommandozeile in meinen Gherkin-Test eingeben?

Und ich betreibe meine Tests über gherkin start [url]

Gibt es eine Möglichkeit, dass ich, was URL Ich gehe in meine Befehlszeile nehmen kann meinen Test zu starten und machen es statt der hardcoded url in meinem browser.url Anruf? Ich benutze Selenium-webdriver und docker, um die Tests auszuführen, die in Gherkin geschrieben sind.

Antwort

0

Kurze Antwort ist NO, leider. Wie Sie bereits erwähnt haben, haben Sie in Ihrer URL einen fest codierten Wert.

Aber es sollte einfache Problemumgehungen Ihr Problem und mit kleinen Änderungen, die Sie zu Ihrem gewünschten Ergebnis bringen können.

1. Da Sie verwenden WebdriverIO, die im Grunde eine Selen-Bindungen Implementierung für NodeJS ist, können wir tatsächlich die global objectprocess.env Verwendung von Knoten build-in-Objekte, in unserem Fall machen.

Zuerst, in Ihrem Test, gehen Sie voran und ersetzen Sie die URL von browser.url("http://www.x.com"); durch eine Variable, so: browser.url(myUrl);.

Dann deklarieren Sie in Ihrem Programmkopf diese Variable: var myUrl = process.env.URL ? process.env.URL : "http://www.x.com". Das wird Node sagen: "Schau, wenn du diese Einstellung der Prozessumgebungsvariablen hast, dann gib sie zurück, sonst gib mir einfach das, was du vorher hattest (dein fest codierter Wert)".

Schließlich, wenn Ihr Test von der Kommandozeile ausgeführt wird, nur die Variable mit dem gewünschten Wert hinzufügen, etwa so:

$ URL="yourUrlHere" gherkin start 

2. Da Sie WebdriverIO verwenden, würde ich stark raten Sie, ihre komplette Tool-Suite zu nutzen, um eine bessere Testerfahrung zu erzielen. * schaut in Traurigkeit auf, dass nicht verwendete wdio.config.js *

So Datei, würde ich einen Blick auf ihre Testrunner und gehen durch die Trainingsabschnitte empfehlen,. Wenn Sie gerne Gurke verwenden, keine Sorge! WebdriverIO integriert sich wunderbar mit Gurke (sowie Mokka oder Jasmine), die Gherkin verwendet.

Ihr Problem würde dann in eine einfache Konfigurationsänderung über die wdio.config.js Datei umgewandelt werden.

Lassen Sie mich wissen, ob dies hilft. Ich kann wahrscheinlich einige andere Lösungen aufbringen. Prost!

+0

Danke für diese Antwort. Momentan bin ich mit der Arbeit beschäftigt, werde aber versuchen, dies umzusetzen, sobald ich die Chance dazu habe, und mich mit meinen Ergebnissen an Sie wenden. – Billy

+0

Okay, also konnte ich dies versuchen, aber es gibt mir einen Fehler von 'TypeError: http: //www.url.com.url ist keine Funktion'. Irgendwelche Gedanken dazu?Ich habe alles wie oben beschrieben implementiert und dann mit dem 'process.env.URL' Code herumgespielt, indem ich die' .URL' von der einen, dann die andere, dann beide von 'process.env' entfernt habe. Entweder hatte der gleiche Fehler oder es hat nur eine Zeitüberschreitung – Billy

+0

@Billy können Sie Ihren Beitrag bearbeiten und einige weitere Informationen hinzufügen? Es würde das Debuggen erleichtern, damit wir eine Lösung finden können. Die "package.json" -Abhängigkeiten wären das erste, was mir in den Sinn kommt, sonst mache ich denselben Fehler und schlage eine Lösung vor, die nicht auf Ihre Einrichtung zugeschnitten ist. Haben Sie darüber nachgedacht, Ihre Tests über 'wdio wdio.config.js' auszuführen, da Sie ein ** WebdriverIO ** Setup verwenden? – iamdanchiv

Verwandte Themen