Cucumber/Calabash-iOS 和 Xamarin.iOS
Posted
技术标签:
【中文标题】Cucumber/Calabash-iOS 和 Xamarin.iOS【英文标题】:Cucumber/Calabash-iOS and Xamarin.iOS 【发布时间】:2013-11-17 15:05:16 【问题描述】:我尝试使用 calabash-ios 测试框架来实现 UI 测试。我遵循了在不同站点上传播的所有方法和教程(xamarin testcloud 指南,在 github 上的 calabash-ios 框架,...)
在我的项目文件夹中,我使用calabash-ios gen
创建了功能目录
我的项目结构如下:(只是一些文件夹/文件
- Certificates
- Resources
- Solutions
- Source
|- B2.Device.Core.iOS
|- B2.Device.Service.iOS
|- B2.Device.iOS
|- AppDelegate.cs
|- B2.Device.iOS.csproj
|- Info.plist
|- MyFooViewController.cs
|- MyBarViewController.cs
|- bin
|- iPhone
|- iPhoneSimulator
|- Debug
|- *.dll
|- B2DeviceiOS.app
|- B2DeviceiOS.exe
|- features
|- my_first.freature
|- step_definitions
|- *.rb
|- support
在Source/B2.Device.iOS/
内调用cucumber
会引发异常:
Dannys-MacBook-Air:B2.Device.iOS dannyyy$ cucumber
Feature: Running a test
As an iOS developer
I want to have a sample feature file
So I can begin testing quickly
Scenario: Example steps # features/my_first.feature:6
Unable to find *.xcodeproj in /Users/dannyyy/Projects/BauPlusMobile/Trunk/Source/B2.Device/B2.Device.iOS (RuntimeError)
/var/folders/6p/s4dwcb0x1yx9wjjk_51ds21r0000gn/T/Calabash-CA09BEA0-1735-4818-AB85-4874C6849183/Gems/gems/calabash-cucumber-0.9.162/lib/calabash-cucumber/launch/simulator_helper.rb:61:in `derived_data_dir_for_project'
/var/folders/6p/s4dwcb0x1yx9wjjk_51ds21r0000gn/T/Calabash-CA09BEA0-1735-4818-AB85-4874C6849183/Gems/gems/calabash-cucumber-0.9.162/lib/calabash-cucumber/launch/simulator_helper.rb:153:in `app_bundle_or_raise'
/var/folders/6p/s4dwcb0x1yx9wjjk_51ds21r0000gn/T/Calabash-CA09BEA0-1735-4818-AB85-4874C6849183/Gems/gems/calabash-cucumber-0.9.162/lib/calabash-cucumber/launcher.rb:148:in `relaunch'
/Users/dannyyy/Projects/BauPlusMobile/Trunk/Source/B2.Device/B2.Device.iOS/features/support/01_launch.rb:29:in `Before'
Given I am on the Welcome Screen # features/step_definitions/my_first_steps.rb:1
Then I swipe left # calabash-cucumber-0.9.162/features/step_definitions/calabash_steps.rb:237
And I wait until I don't see "Please swipe left" # calabash-cucumber-0.9.162/features/step_definitions/calabash_steps.rb:168
And take picture # calabash-cucumber-0.9.162/features/step_definitions/calabash_steps.rb:232
Failing Scenarios:
cucumber features/my_first.feature:6 # Scenario: Example steps
1 scenario (1 failed)
4 steps (4 skipped)
0m1.043s
如果我使用 Xamarin.iOS 环境进行开发,怎么可能有一个 XCode 项目文件?我也尝试设置DEVICE_BUNDLE_PATH=~/Projects/BauPlusMobile/Trunk/Source/B2.Device/B2.Device.iOS/bin/iPhoneSimulator/Debug
但是当然会抛出同样的异常!
我看到的所有视频演示和截屏视频都使用 Xamarin.iOS 环境,但没有出现此错误。
进行测试的唯一方法是调用 cucumber NO_LAUNCH=1
并在 Xamarin Studio 中启动应用并附加调试器。
希望有人能帮帮我。
【问题讨论】:
【参考方案1】:经过多次尝试和错误,我找到了解决问题的方法。我想我会为使用 Xamarin.iOS 环境的用户解决一般问题。
-
更改到包含
*.csproj
的项目文件夹在我的情况下为> cd ~/Projects/MyProject/Trunk/Source/B2.Device/B2.Device.iOS
生成features
目录> calabash-ios gen
如果你还没有安装 calabash-ios,让我们开始吧> sudo gem install calabash-cucumber
创建config
目录并切换到它> mkdir config
> cd config
创建一个名为cucumber.yml
的文件
将以下内容放入其中(配置文件名称以及其他环境变量可以更改以满足您的需要)
# YAML Template
---
ipad-sim: APP="~/Projects/MyProject/Trunk/Source/B2.Device/B2.Device.iOS/bin/iPhoneSimulator/Debug/B2DeviceiOS.app" BUNDLE_ID="tld.domain.project" SDK_VERSION=6.1
返回项目目录并开始测试> calabash-ios -p ipad-sim
【讨论】:
谢谢,很有帮助!以上是关于Cucumber/Calabash-iOS 和 Xamarin.iOS的主要内容,如果未能解决你的问题,请参考以下文章
java 正则表达式 X?? 的示例,X?+ 和 X? [复制]