Как только я правильно выполнить процедуру установки рамки калабаш на 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
Так интересно, если я могу отложить запуск тестовых сценариев до реального начала приложения на мобильном, так что все тестовые сценарии эффективно выполняются.
спасибо !! но это не работает для меня, первые два сценария продолжают пропускаться. – Seva
Возможно, попробуйте найти элемент на стартовой странице. И добавьте в этот шаг: wait_for_elements_exist ("* отмечен: 'element'",: timeout => 100) – OPetriv
В вашем step_definition я добавил: «sleep 40», так как приложение запускается в этом диапазоне. Я считаю, что после команды «Запуск» первый сценарий запускается через определенный промежуток времени, и если в этом диапазоне приложение не запускалось, сценарий автоматически пропускается, не вдаваясь в отдельные шаги. Поэтому для запуска поздних сценариев потребуется команда. – Seva