test online automated apps app ios xamarin.ios cucumber xamarin calabash

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.

  1. Cambie a su carpeta de proyecto que contiene el *.csproj
    En mi caso > cd ~/Projects/MyProject/Trunk/Source/B2.Device/B2.Device.iOS
  2. Generar el directorio de features
    > calabash-ios gen
    • Si aún no tiene instalado calabash-ios, comencemos
      > sudo gem install calabash-cucumber
  3. Crear el directorio config y cambiarlo
    > mkdir config
    > cd config
  4. Crea un archivo llamado cucumber.yml
  5. 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

  6. Vuelve al directorio de tu proyecto y comienza tus pruebas
    > calabash-ios -p ipad-sim