1

我们正在使用 Visual Studio 和 Xamarin 为 iOS 构建一个应用程序。在解决方案组件中,Visual Studio 显示可用的 Calabash-ios 版本 0.9.169、0.10.0 和 0.10.1。项目中仅添加了 0.10.1 版本。当我在 iPad 上运行 calabash 测试时,我看到警告文本:

警告:服务器版本与 gem 版本不兼容。请更新您的服务器。 https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version gem 版本:'0.10.1' 最低服务器版本:'0.10.1' 服务器版本:'0.9。 169'

给定地址处的信息似乎是 Xcode 特定的。解决方案中没有任何名为 calabash.framework 的内容。

是否有与此步骤等效的内容:'1。对您的 Xcode 项目进行深度清理或类似的东西,我们需要运行以防止应用程序使用旧的服务器版本构建?

更新:将设备更新到 iOS8 并将项目更新到 iOS8 后,这是我尝试使用葫芦时得到的:

irb(main):001:0> start_test_server_in_background
2014-09-25 11:31:09.767 instruments[447:1007] Failed to start Instruments daemon for 'iOS' on 'iPad (v8.0)' (The service is invalid.)
2014-09-25 11:31:09.931 instruments[447:2007] Failed to start Instruments daemon for 'iOS' on 'iPad (v8.0)' (The service is invalid.)
Errno::EINTR: Interrupted system call - /var/folders/f3/0b6tvs5x0p3dx4j91gp3x33nrc1cvb/T/run_loop20140925-436-1vamn4b/repl-cmd.pipe
from /Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:206:in `initialize'
from /Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:206:in `open'
from /Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:206:in `run_with_options'
from /Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:665:in `run'
from /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:687:in `block in new_run_loop'
from /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:685:in `times'
from /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:685:in `new_run_loop'
from /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:570:in `relaunch'
from /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/core.rb:805:in `start_test_server_in_background'
from (irb):1
from /usr/bin/irb:12:in `<main>'

irb(主):002:0>

更新:我已经验证 Calabash-ios 的服务器版本和客户端版本都是 10.1,我仍然得到这些错误:

### Starting on 36071058c0deb1fb11cffe178aa2ef268f5b8e30 App: <appname> ###
2014-09-30 08:39:14 +1300 xcrun instruments -w "36071058c0deb1fb11cffe178aa2ef268f5b8e30" -D "/var/folders/f3/0b6tvs5x0p3dx4j91gp3x33nrc1cvb/T/run_loop20140930-448-ofaiqy/trace" -t "Automation" "<appname>" -e UIARESULTSPATH /var/folders/f3/0b6tvs5x0p3dx4j91gp3x33nrc1cvb/T/run_loop20140930-448-ofaiqy -e UIASCRIPT /var/folders/f3/0b6tvs5x0p3dx4j91gp3x33nrc1cvb/T/run_loop20140930-448-ofaiqy/_run_loop.js  &> /var/folders/f3/0b6tvs5x0p3dx4j91gp3x33nrc1cvb/T/run_loop20140930-448-ofaiqy/run_loop.out
Interrupted system call - /var/folders/f3/0b6tvs5x0p3dx4j91gp3x33nrc1cvb/T/run_loop20140930-448-ofaiqy/repl-cmd.pipe (Errno::EINTR)
/Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:206:in `initialize'
/Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:206:in `open'
/Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:206:in `run_with_options'
/Library/Ruby/Gems/2.0.0/gems/run_loop-1.0.3/lib/run_loop/core.rb:665:in `run'
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:687:in `block in new_run_loop'
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:685:in `times'
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:685:in `new_run_loop'
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.10.1/lib/calabash-cucumber/launcher.rb:570:in `relaunch'
/Volumes/Projects/Enlighten/LIC/LIC.Datamate/Calabash tests/features/support/01_launch.rb:41:in `Before'

在每种情况下,应用程序都会启动,然后立即关闭。

更多信息:我们尝试在两个不同的 Mac Mini 和两个不同的 iPad 以及模拟器上运行测试。他们都没有跑。我们还使用仍在服务器版本 1.9.169 上的不同应用程序运行了 calabash 控制台,一切都按预期进行。因此,问题似乎仅限于服务器版本 1.10.1。

4

1 回答 1

2

我用 iOS 8 做了很多测试,Calabash 绝对支持它。但是,有几个重要的问题和事情需要注意。

1) 首先,您要确保始终运行最新版本的 Calabash 组件:

https://components.xamarin.com/view/calabash?version=10.1

请注意,我们正在将名称从版本 10.2 更改为 Xamarin 测试云代理。

2)如果您使用该组件更新您的项目并进行干净的构建,您应该能够在模拟器中以调试模式启动应用程序并运行命令:curl http://localhost:37265/version查看版本 0.10.1

3)我注意到您提到“iPad(v8.0)”,所以您似乎正在设备上运行。没关系,但是您使用哪个确切的命令来运行 cucumber 或 calabash 控制台?请务必指定 DEVICE_TARGET 环境变量或使用:start_test_server_in_background(device_target:'DEVICE_UDID', app:'com.company.mybundleid')

4)当您尝试以上所有方法时,请再做一件事。在运行命令之前设置以下环境变量:

导出 DEBUG=1 导出 DEBUG_HTTP=1

并向我们​​展示用于开始测试的确切命令。

5) 确保在安装 Xcode 6 后至少重启过一次 Mac

于 2014-09-25T04:51:32.680 回答