我使用ruby编写黄瓜测试脚本,并在定义一些变量时遇到问题。
我需要在iPhone 6设备上运行测试,所以我将以下(BrowserStack)定义添加到我的黄瓜env.rb文件中;
capabilities['device'] = ENV['MOBILE_DEVICE']
以下配置文件进入我的cucumber.yml文件;
bsmobile: BROWSER_NAME=iPhone PLATFORM=MAC MOBILE_DEVICE='iPhone 6'
然而,当我在Windows上运行它时,它不允许“MOBILE_DEVICE”中的空格。 ENV。
我已经尝试过了;
MOBILE_DEVICE="iPhone 6"
"MOBILE_DEVICE=iPhone 6"
MOBILE_DEVICE="'iPhone 6'"
MOBILE_DEVICE='iPhone\ 6'
MOBILE_DEVICE=iPhone\ 6
但似乎都没有效果。
我错过了一些明显的东西吗?
任何帮助都会很棒。
答案 0 :(得分:0)
我相信你可以将设备作为iPhone6传递一个空格。这同样适用于iPhone6S和其他移动模拟器。你有没试过这个?
答案 1 :(得分:0)
答案可在line 34 of the cucumber gem file profile_loader.rb
找到:
args_from_yml = Shellwords.shellwords(args_from_yml)
从这里我们可以测试看看irb中有什么用,经过一些实验我们发现了这个:
Shellwords.shellwords("xxx yyy zzz=\'aaa bbb\'")
=> ["xxx", "yyy", "zzz=aaa bbb"]
因此,您的问题的解决方案应该是:
MOBILE_DEVICE='iPhone 6'