bdd - configuración de un proyecto móvil (ios - android)
TRANSCRIPT
BDD y Test automatizados
1
Universidad Pontificia de SalamancaMáster Universitario en Informática Móvil
Sofía Swidarowicz Andrade17 de Abril de 2015
Configuración de nuestro proyecto
Configuración del proyecto
2
3
Estructura del proyecto:
Configuración del proyecto.!"" Gemfile!"" Gemfile.lock!"" binary# !"" android# $"" ios!"" config!"" features$"" output
4
Estructura del proyecto:
Configuración del proyecto
.!"" Gemfile!"" binary!"" config# $"" cucumber.yml!"" features$"" output
5
Estructura del proyecto:
Configuración del proyecto.!"" Gemfile!"" binary!"" config!"" features# !"" 1_login.feature# !"" helpers# # !"" android# # # !"" android_helper.rb# # # $"" support# # # $"" hooks.rb# # !"" ios# # # !"" ios_helper.rb# # # $"" support# # # !"" hooks.rb# # $"" media_mobile.rb# !"" screens# !"" step_definitions# $"" support$"" output
6
Estructura del proyecto:
Configuración del proyecto.!"" Gemfile!"" binary!"" config!"" features# !"" 1_login.feature# !"" helpers# !"" screens# # !"" common_screen.rb# # !"" dashboard_screen.rb# # $"" login_screen.rb# !"" step_definitions# # $"" login_step.rb# $"" support# !"" env.rb# !"" json_expanded_formatter.rb# $"" pre_loader.rb$"" output
Configuración del proyecto
7
Si el proyecto YA EXISTE; y si contiene un GEMFILE: Instalar las dependencias
$:bundle install (instala todas las dependencias del gemfile del proyecto)
$:gem install bundle
Las dependencias se encuentran en el gemfile, adjuntado al proyecto
8
$:calabash-android run build-calabash/<Nombre del apk> features/1_login.feature --tag @HappyLogin -p android
Comando para ejecutar un test Android
Configuración del proyecto
$:APP_BUNDLE_PATH=binary/ios/build/LoginApp-cal.app cucumber features/1_login.feature --tag @LoginApp -p ios
Comando para ejecutar un test iOS
Configuración del proyecto
9
Query sobre elementos UI
$:query(“*”)
$:query(“*”,:setText=>’Hola’)
$:touch(“class id:’myid’”)
$:query(“class id:’myid’”).count
Configuración del proyecto
10
1.- Instalar calabash-ios 1.- Instalar calabash-android
2.- Calabash-ios setup
3.- Calabash-ios console
2.- Calabash-android console
Configuración del proyecto
11
1.- Instalar Ruby - RVM
$: \curl -sSL https://get.rvm.io | bash -s stable --ruby
Configuración del proyecto
12
Configuración del proyecto iOS
13
1.- Command Line Tools instaladas
$: xcode-select --install
Configuración del proyecto iOS
14
3.- Creamos el server de calabash
$: calabash-ios setup
2.- instalamos calabash-ios
$: gem install calabash-cucumber
15
3.1 Generando el esqueleto calabash, si empezamos de cero un proyecto
$: calabash-ios gen
Configuración del proyecto
Configuración del proyecto iOS
16
4.- Compilamos la app
Abrimos Xcode y compilamos como siempre
Configuración del proyecto iOS
17
5.- Movemos el .app a un fichero conocido y accesible
$: DEVELOPER_DIR=/Applications/Xcode-6-1-1/Xcode.app/Contents/Developer/ xcodebuild -sdk iphonesimulator -scheme "LoginApp-cal" -target "LoginApp-cal" ONLY_ACTIVE_ARCH=NO CONFIGURATION_BUILD_DIR="calabash-build" clean build
Configuración del proyecto iOS
18
6.- Ejecutamos la consola de calabash
$: APP_BUNDLE_PATH="calabash-build/LoginApp-cal.app" calabash-ios console
$: start_test_server_in_background
7.- Si se abre el simulador, has logrado configurar exitosamente calabash-ios en tu app
19
8.- Prueba a lanzar un: query(“*”)
Configuración del proyecto iOS
Configuración Android
20
21
1.- Debemos tener instalados en Android Studio y un dispositivo virtual, como DALVIK o Genymotion
Android Virtual Device
Android SDK
O Genymotion
Configuración del proyecto Android
22
2.- Comprobar que tenemos el ANDROID_HOME
$: echo “ANDROID_HOME”
Sino debemos crearlo:
export HOME=/Users/myusuario export ANDROID_HOME=$HOME/Library/Android/sdk export PATH_ANDROID=$PATH_ANDROID:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/add-ons export PATH="$PATH_ANDROID/platform-tools:$PATH"
Configuración del proyecto Android
23
3.- Debemos instalar también GRADLE
4.- Instalamos en raíz
https://gradle.org/
$: /Users/phynet/gradle-2.3
Configuración del proyecto Android
24
5.- Seguido configuramos nuestro PATH
Instalamos en raíz
export HOME=/Users/myuser export ANDROID_HOME=$HOME/Library/Android/sdk export PATH_ANDROID=$PATH_ANDROID:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/add-ons export GRADLE_HOME=$HOME/gradle-2.3/bin export PATH="$PATH_ANDROID/platform-tools:$GRADLE_HOME:$PATH"
Configuración del proyecto Android
25
$: gem install calabash-android
6.- Instala la gema de calabash-android:
Configuración del proyecto Android
26
7.- En una ventana del terminal, ve a la ruta de tu proyecto Android:
cd ruta-de-mi-proyecto-android
Configuración del proyecto Android
27
9.- Movemos nuestro .apk a una ruta de más fácil acceso
8.- Necesitamos tener el .apk de nuestra aplicación
$: gradle assembleDebug
Compilamos con:
$: my-project/build-calabash/<Nombre del apk>
Configuración del proyecto Android
28
10.- Abrimos nuestro AVD Dalvik con:
$: emulator -avd Nexus_API_19
11.- Realizamos el resign de la app con calabash
$: calabash-android resign <Nombre del apk>
Configuración del proyecto Android
29
12.- Ejecutamos la consola con:
13.- Realizamos el calabash-android reinstall apps
$: reinstall_apps
$: calabash-android console build-calabash/<Nombre del apk>
$: start_test_server_in_background
Configuración del proyecto Android
Descarga el proyecto en:
30
https://github.com/phynet/BDD-CALABASH-Example
https://github.com/phynet/Heroes-iOS-Calabash-Example
https://github.com/phynet/Heroes-Android-Calabash-Example
Proyecto BDD:
Binary iOS:
Binary Android:
Enlaces de interés
https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version
Actualizar framework calabash-ios