bdd - configuración de un proyecto móvil (ios - android)

31
BDD y Test automatizados 1 Universidad Pontificia de Salamanca Máster Universitario en Informática Móvil Sofía Swidarowicz Andrade 17 de Abril de 2015 Configuración de nuestro proyecto

Upload: sofia-swidarowicz

Post on 26-Jul-2015

30 views

Category:

Software


0 download

TRANSCRIPT

Page 1: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 2: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto

2

Page 3: BDD - Configuración de un proyecto móvil (iOS - Android)

3

Estructura del proyecto:

Configuración del proyecto.!"" Gemfile!"" Gemfile.lock!"" binary#   !"" android#   $"" ios!"" config!"" features$"" output

Page 4: BDD - Configuración de un proyecto móvil (iOS - Android)

4

Estructura del proyecto:

Configuración del proyecto

.!"" Gemfile!"" binary!"" config#   $"" cucumber.yml!"" features$"" output

Page 5: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 6: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 7: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 8: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 9: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto

9

Query sobre elementos UI

$:query(“*”)

$:query(“*”,:setText=>’Hola’)

$:touch(“class id:’myid’”)

$:query(“class id:’myid’”).count

Page 10: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 11: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto

11

1.- Instalar Ruby - RVM

$: \curl -sSL https://get.rvm.io | bash -s stable --ruby

Page 12: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto

12

Page 13: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto iOS

13

1.- Command Line Tools instaladas

$: xcode-select --install

Page 14: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto iOS

14

3.- Creamos el server de calabash

$: calabash-ios setup

2.- instalamos calabash-ios

$: gem install calabash-cucumber

Page 15: BDD - Configuración de un proyecto móvil (iOS - Android)

15

3.1 Generando el esqueleto calabash, si empezamos de cero un proyecto

$: calabash-ios gen

Configuración del proyecto

Page 16: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración del proyecto iOS

16

4.- Compilamos la app

Abrimos Xcode y compilamos como siempre

Page 17: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 18: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 19: BDD - Configuración de un proyecto móvil (iOS - Android)

19

8.- Prueba a lanzar un: query(“*”)

Configuración del proyecto iOS

Page 20: BDD - Configuración de un proyecto móvil (iOS - Android)

Configuración Android

20

Page 21: BDD - Configuración de un proyecto móvil (iOS - Android)

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

Page 22: BDD - Configuración de un proyecto móvil (iOS - 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

Page 23: BDD - Configuración de un proyecto móvil (iOS - 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

Page 24: BDD - Configuración de un proyecto móvil (iOS - 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

Page 25: BDD - Configuración de un proyecto móvil (iOS - Android)

25

$: gem install calabash-android

6.- Instala la gema de calabash-android:

Configuración del proyecto Android

Page 26: BDD - Configuración de un proyecto móvil (iOS - 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

Page 27: BDD - Configuración de un proyecto móvil (iOS - 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

Page 28: BDD - Configuración de un proyecto móvil (iOS - 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

Page 29: BDD - Configuración de un proyecto móvil (iOS - 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

Page 30: BDD - Configuración de un proyecto móvil (iOS - 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:

Page 31: BDD - Configuración de un proyecto móvil (iOS - Android)

Enlaces de interés

https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version

Actualizar framework calabash-ios