2017-02-08 2 views
1

Ich benutze Ruby, um meine Gurkentests zu skripten und habe ein Problem beim Definieren einiger Variablen getroffen.Gurke Ruby - Räume in gurke.yml Profil ENV Variablen

Ich muss einen Test auf dem iPhone 6-Gerät ausführen, so fügte ich die folgende (BrowserStack) Definition in meine Gurken env.rb-Datei;

capabilities['device'] = ENV['MOBILE_DEVICE'] 

Und das folgende Profil in meine gurke.yml-Datei;

bsmobile: BROWSER_NAME=iPhone PLATFORM=MAC MOBILE_DEVICE='iPhone 6' 

Allerdings, wenn ich laufe diese unter Windows ist es nicht den Raum in dem ‚MOBILE_DEVICE‘ env ermöglicht.

Ich habe es versucht;

MOBILE_DEVICE="iPhone 6" 
"MOBILE_DEVICE=iPhone 6" 
MOBILE_DEVICE="'iPhone 6'" 
MOBILE_DEVICE='iPhone\ 6' 
MOBILE_DEVICE=iPhone\ 6 

Aber keiner schien zu funktionieren.

Fehle ich etwas offensichtlich hier?

Jede Hilfe wäre großartig.

+0

Woher kommt der Schlüssel 'bsmobile'? Wer parst diesen Schlüssel aus der Yaml-Datei? – Casper

+0

Sorry, sollte hinzugefügt haben, dass die "bsmobile" ist nur ein Gurken-Profil-Namen (ich habe beim Testen gegeben) für das Testen des mobilen Geräts (in diesem Besetzung iPhone 6. Also wenn ich den Gurken-Test ich nur ausführen muss Geben Sie "-p bsmobile" statt alle Umgebungen ein. – DHarls17

Antwort

0

Ich glaube, Sie können das Gerät als iPhone6 ​​mit einem Leerzeichen übergeben. Das gleiche sollte für iPhone6S und andere mobile Emulatoren funktionieren. Hast du das schon probiert?

0

Die Antwort auf line 34 of the cucumber gem file profile_loader.rb gefunden:

args_from_yml = Shellwords.shellwords(args_from_yml) 

Von hier aus können wir sehen, testen, was in irb funktioniert, und nach ein wenig Experimentieren finden wir diese:

Shellwords.shellwords("xxx yyy zzz=\'aaa bbb\'") 
=> ["xxx", "yyy", "zzz=aaa bbb"] 

Daraus ergibt sich die Lösung Ihr Problem sollte sein:

MOBILE_DEVICE='iPhone 6'