我是 Calabash iOS 自动化测试的新手。我在Snow Leopard(版本10.6.8)上安装了“Xcode 4.2”,“Ruby version 2.0.0p643”和“calabash-cucumber gem”
我运行了命令“calabash-ios setup”并为我的测试iOS项目创建了一个目标(test-cal目标)。使用此命令,CFNetwork.framework和calabash.framework将添加到test-cal目标。
之后,我在终端中运行了“calabash-ios gen”并创建了一个名为features的子目录,并手动将功能子目录添加到test-cal目标。
我在features文件夹下的“sample.feature”文件中编写了一个测试脚本,然后在终端执行了yellow命令来测试脚本。
运行命令后,它给出了以下错误:
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
我很感激有关解决此问题的任何建议/想法。
答案 0 :(得分:2)
对于初学者,请确保您至少使用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
(您可以通过运行instruments -w devices
)
对于它的价值,我还建议您查看calabash-sandbox以获得简化的ruby设置。