Ошибка «Невозможно автоматически определить APP_BUNDLE_PATH» при запуске теста Calabash на iOS

Я новичок в автоматизированном тестировании Calabash iOS. Я установил "Xcode 4.2", "Ruby version 2.0.0p643" и "calabash-cucumber gem" на Snow Leopard (версия 10.6.8)

Я выполнил команду "calabash-ios setup" и создал цель (цель test-cal) для своего тестового проекта iOS. С помощью этой команды CFNetwork.framework и calabash.framework добавляются к цели test-cal.

После этого я запустил "calabash-ios gen" в терминале, создал подкаталог с именем functions и вручную добавил подкаталог features в цель test-cal.

Я написал тестовый скрипт в файле sample.feature в папке с функциями, а затем выполнил в терминале команду огурца, чтобы протестировать скрипт.

После запуска команды выдает следующую ошибку:

Scenario: Sample test                          # features/sample.feature:3

 Unable to auto detect APP_BUNDLE_PATH.
  Have you built your app for simulator?

Searched dir: /Users/octaneconference/Library/Developer/Xcode/DerivedData/Test-frkimcejhwemmaaapwknwfwvhnmb

Please build your app from Xcode

You should build the -cal target.

  Alternatively, specify APP_BUNDLE_PATH in features/support/01_launch.rb
  This should point to the location of your built app linked with calabash.
   (RuntimeError)

  ./features/support/01_launch.rb:29:in `Before'
    Given the app has launched                   # features/steps/sample_steps.rb:1
    And then the Sound Enable screen will appear # features/sample.feature:5
    When click on "NO" button                    # features/sample.feature:6
    Then Menu screen will appear in the screen   # features/sample.feature:7
    Then take a picture                          # features/sample.feature:8

Failing Scenarios:

cucumber features/sample.feature:3 # Scenario: Sample test

1 scenario (1 failed)
5 steps (1 skipped, 4 undefined)
0m0.965s

You can implement step definitions for undefined steps with these snippets:

Given(/^then the Sound Enable screen will appear$/)
do

pending # Write code here that turns the phrase above into concrete actions
end

When(/^click on "([^"]*)" button$/) do |arg1|

  pending # Write code here that turns the phrase above into concrete actions
end

Then(/^Menu screen will appear in the screen$/) 

do
  pending # Write code here that turns the phrase above into concrete actions

end

Then(/^take a picture$/) do

pending # Write code here that turns the phrase above into concrete actions

end     

Буду признателен за любые предложения/мысли по устранению этой проблемы.


person Naresh    schedule 04.01.2016    source источник


Ответы (1)


Для начала убедитесь, что вы используете как минимум OSX Yosemite или более позднюю версию, Xcode 6 или более позднюю версию (предпочтительно >= 7), а также убедитесь, что у вас установлена ​​последняя версия калебас-огурца (на момент написания статьи 0.17.0). Вы можете убедиться в этом, запустив

calabash-ios version

Во-вторых, откуда вы запускаете команду cucumber? Если вы пытаетесь запустить тест на симуляторе из проекта xcode, вам нужно находиться в том же каталоге, что и <app_name>.xcodeproj . Как следует из сообщения об ошибке, перед запуском вам также необходимо убедиться, что вы действительно создали проект для симулятора.

Если вы пытаетесь запустить тест в пакете приложений симулятора (папка с расширением .app), вместо этого вы можете запустить:

APP_BUNDLE_PATH=/path/to/appname.app DEVICE_TARGET="<UUID>" cucumber

(вы можете найти uuid ваших симуляторов, запустив instruments -w devices )

Я бы также рекомендовал проверить . calabash-sandbox для упрощенной настройки ruby.

person Christopher Fuentes    schedule 04.01.2016