2017-02-08 12 views
1

Я использую ruby ​​для написания тестов на огурец и столкнулся с проблемой при определении некоторых переменных.Cucumber Ruby - Пространства в профиле cucumber.yml Переменные ENV

Мне нужно запустить тест на устройстве iPhone 6, поэтому я добавил следующее определение (BrowserStack) в файл enu.rb cucumbers;

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

И следующий профиль в мой файл cucumber.yml;

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

Однако, когда я бегу это на Windows, это не позволяет пространство в «MOBILE_DEVICE» окр.

Я пробовал;

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

Но никто не работал.

Я пропустил что-то очевидное здесь?

Любая помощь будет отличной.

+0

Откуда взялся ключ 'bsmobile'? Кто разбирает этот ключ из файла Yaml? – Casper

+0

К сожалению, должен был добавить, что «bsmobile» - это просто имя профиля огурца (я дал при тестировании) для тестирования мобильного устройства (в этом литовом iPhone 6. Поэтому, когда я запускаю тест огурца, мне нужно только введите «-p bsmobile», а не все среды. – DHarls17

ответ

0

Я считаю, что вы можете просто передать устройство как iPhone6 ​​с пространством. То же самое должно работать для iPhone6S и других мобильных эмуляторов. Вы уже пробовали это?

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' 

 Смежные вопросы

  • Нет связанных вопросов^_^