Как создать собственный шаг калебаса для запуска команды?

Я использую calabash-android для тестирования своего приложения. Я хочу создать собственный шаг, который выполняет команду adb.

Вот что я пробовал:

Я создал следующий пользовательский шаг, который не принимает аргументов (я создал его в папке step_definitions/):

Run adb command for our app do |cukes|
   system("adb devices")
end

В my_first.feature я вызываю вышеуказанный шаг следующим образом:

Feature: My feature

  Scenario: My scenario
    Run adb command for our app

Когда я запускаю тест с помощью команды calabash-android run myApp.apk, я получаю сообщение об ошибке:

syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
Run adb command for our app do |cukes|

Где я не прав? Как создать простой шаг, который не требует аргументов и просто запускает одну команду adb?


person Leem.fin    schedule 29.08.2016    source источник


Ответы (1)


Несколько вопросов:

  • Run не является идентификатором Gherkin. Начните свой шаг с Given, When, Then, And или But.
  • Определения шага содержат не голую формулировку шага, а соответствующее ему регулярное выражение.
  • Количество параметров блока должно соответствовать количеству групп захвата в регулярном выражении. В данном случае их нет, поэтому параметров блока быть не должно.

Это должно работать:

особенности/my_first.feature

Feature: My feature

  Scenario: My scenario
    When I run the adb command for our app

step_definitions/my_first_steps.rb

When /^I run the adb command for our app$/ do
  system("adb devices")
end
person Dave Schweisguth    schedule 29.08.2016