2016-07-13 3 views
0

Как только я правильно выполнить процедуру установки рамки калабаш на App испытуемой, и после написания сценариев тестирования с шагом соответствующего определения, если я запускаю через консоль:Calabash-android - как задержать начало тестовых сценариев, чтобы дождаться запуска приложения?

$ calabash-android console C:\..\app-unaligned.apk 
$ start_test_server_in_background 

Приложение запускается без проблем на мое устройство (подключено к ПК).

Вместо когда я бегу в командной строке:

$ calabash-android run C:\..\app-unaligned.apk 

Приложение начинается примерно через 40 секунд, что это, очевидно, тоже, потому что в этом диапазоне первые два сценария тестирования уже ушел, не будучи в состоянии на самом деле начинается в приложении. Когда запуск приложения (примерно через 40 секунд), остальные сценарии (еще не запущенные) должным образом выполняются в приложении. Таким образом, первые сценарии терпят неудачу, а остальные проходят.

C:\..\MyApp>calabash-android run C:\..\app-unaligned.apk 
    *** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows 
    Feature: Testing MyApp 

    6278 KB/s (585926 bytes in 0.091s) 
    6759 KB/s (5721923 bytes in 0.826s) 
     Background:         # features/my_first.feature:3 
     App did not start (RuntimeError) 
     ./features/support/app_life_cycle_hooks.rb:5:in `Before' 
     Given I wait         # calabash-android-0.7.3/lib/calabash-android/steps/progress_steps.rb:5 
     Then I press on the tutorial screen   # features/step_definitions/calabash_steps.rb:3 
    . 
    . 
    Scenario: Test One  # features/my_first.feature:14 
    . 
    . 
    Scenario: Test two # features/my_first.feature:25 
    . 
    . 
    Scenario: Test three  # features/my_first.feature:60 
    . 
    . 
    Failing Scenarios: 
    cucumber features/my_first.feature:14 # Scenario: Test one 
    cucumber features/my_first.feature:25 # Scenario: Test two 

    3 scenarios (2 failed, 1 passed) 
    56 steps (44 skipped, 12 passed) 
    1m12.056s 

Так интересно, если я могу отложить запуск тестовых сценариев до реального начала приложения на мобильном, так что все тестовые сценарии эффективно выполняются.

ответ

0

Используйте этот пустой шаг.

особенность:

Given App is running 

step_definition:

Given(/^App is running$/) do 
end 

Для меня эта работа.

+0

спасибо !! но это не работает для меня, первые два сценария продолжают пропускаться. – Seva

+0

Возможно, попробуйте найти элемент на стартовой странице. И добавьте в этот шаг: wait_for_elements_exist ("* отмечен: 'element'",: timeout => 100) – OPetriv

+0

В вашем step_definition я добавил: «sleep 40», так как приложение запускается в этом диапазоне. Я считаю, что после команды «Запуск» первый сценарий запускается через определенный промежуток времени, и если в этом диапазоне приложение не запускалось, сценарий автоматически пропускается, не вдаваясь в отдельные шаги. Поэтому для запуска поздних сценариев потребуется команда. – Seva