【问题标题】:“Unable to auto detect APP_BUNDLE_PATH” error while running the Calabash test on iOS在 iOS 上运行 Calabash 测试时出现“无法自动检测 APP_BUNDLE_PATH”错误
【发布时间】:2016-01-05 05:21:42
【问题描述】:

我是 Calabash iOS 自动化测试的新手。我在 Snow Leopard(版本 10.6.8)上安装了“Xcode 4.2”、“Ruby 版本 2.0.0p643”和“calabash-cucumber gem”

我运行命令 “calabash-ios setup” 并为我的测试 iOS 项目创建了一个目标(test-cal 目标)。使用此命令,CFNetwork.framework 和 calabash.framework 被添加到 test-cal 目标中。

之后,我在终端中运行“calabash-ios gen”,并创建了一个名为 features 的子目录,并手动将 features 子目录添加到 test-cal 目标。

我在 features 文件夹下的 “sample.feature” 文件中编写了一个测试脚本,然后在终端中执行 cucumber 命令来测试该脚本。

运行命令后出现以下错误:

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     

对于解决此问题的任何建议/想法,我将不胜感激。

【问题讨论】:

    标签: ios ruby calabash calabash-ios


    【解决方案1】:

    对于初学者,请确保您至少使用 OSX Yosemite 或更高版本,Xcode 6 或更高版本(最好 >= 7),并请确保您拥有最新的 calabash-cucumber gem(在撰写本文时,0.17. 0)。您可以通过运行验证这一点

    calabash-ios version
    

    其次,您从哪里运行cucumber 命令?如果您尝试从 xcode 项目在模拟器上运行测试,则需要与 <app_name>.xcodeproj 位于同一目录中。正如错误消息所暗示的那样,您还需要确保在运行之前为模拟器实际构建了项目。

    如果您尝试在模拟器应用程序包(扩展名为 .app 的文件夹)上运行测试,则可以改为运行:

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

    (您可以通过运行 instruments -w devices 找到模拟器的 uuid)

    对于它的价值,我还建议查看calabash-sandbox 以获得简化的 ruby​​ 设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多