online - Pepino/Calabash-iOS y Xamarin.iOS
test app online (1)
Intento implementar pruebas de UI con el marco de prueba de calabash-ios. Seguí todos los howtos, tutoriales distribuidos en los diferentes sitios (xamarin testcloud guide, en github para el framework calabash-ios, ...)
En mi carpeta de proyecto, creé el directorio de características con calabash-ios gen
Mi estructura de proyecto es como la siguiente: (solo algunas de las carpetas / archivos)
- 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
Llamar a cucumber
dentro de Source/B2.Device.iOS/
arroja una excepción:
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
¿Cómo es posible tener un archivo de proyecto XCode si estoy desarrollando con el entorno Xamarin.iOS? Intenté también establecer DEVICE_BUNDLE_PATH=~/Projects/BauPlusMobile/Trunk/Source/B2.Device/B2.Device.iOS/bin/iPhoneSimulator/Debug
¡Pero, por supuesto, se lanzará la misma excepción!
Todas las demostraciones de video y screencasts que he visto estaban trabajando con el entorno Xamarin.iOS pero sin este error.
La única manera de trabajar en las pruebas es llamando al cucumber NO_LAUNCH=1
e iniciar la aplicación dentro de Xamarin Studio con el depurador adjunto.
Espero que alguien pueda ayudarme.
Después de muchos intentos y errores, obtuve la solución para mi problema. Supongo que resolveré el problema en general para los usuarios que trabajan con el entorno Xamarin.iOS.
- Cambie a su carpeta de proyecto que contiene el
*.csproj
En mi caso> cd ~/Projects/MyProject/Trunk/Source/B2.Device/B2.Device.iOS
- Generar el directorio de
features
> calabash-ios gen
- Si aún no tiene instalado calabash-ios, comencemos
> sudo gem install calabash-cucumber
- Si aún no tiene instalado calabash-ios, comencemos
- Crear el directorio
config
y cambiarlo
> mkdir config
> cd config
- Crea un archivo llamado
cucumber.yml
Incluya el siguiente contenido (el nombre del perfil y las otras variables de entorno podrían modificarse para satisfacer sus necesidades)
# 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
- Vuelve al directorio de tu proyecto y comienza tus pruebas
> calabash-ios -p ipad-sim