Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/316329446

AUTOMATIZACIÓN DE PRUEBAS YII 2 UTILIZANDO CODECEPTION LINUX

Conference Paper · April 2017

CITATIONS READS
0 883

1 author:

Jaime Sayago Heredia


Pontificia Universidad Católica del Ecuador
21 PUBLICATIONS   10 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Proyecto: Prevalencia de Caries en escolares de 12 años en Cuenca 2016 View project

All content following this page was uploaded by Jaime Sayago Heredia on 21 April 2017.

The user has requested enhancement of the downloaded file.


AUTOMATIZACIÓN DE PRUEBAS YII 2 UTILIZANDO CODECEPTION
LINUX

Realizado por:
Ing. Jaime Sayago Heredia MSc.

PUCE
1

AUTOMATIZACIÓN DE PRUEBAS YII 2 UTILIZANDO CODECEPTION


LINUX

Contenido
AUTOMATIZACIÓN DE PRUEBAS YII 2 UTILIZANDO CODECEPTION LINUX ............................................................. 1
1. CONFIGURACIÓN DE ENTORNO DE PRUEBAS ............................................................................................. 2
2. INSTALACIÓN DEPENDECIAS ....................................................................................................................... 2
4. COMPROBACIÓN DE LIBRERÍAS .............................................................................................. 4
5. INSTALAR CODECEPTION............................................................................................................................. 6
6. CONFIGURANDO CODECEPTION CON TU PROYECTO ......................................................... 9
7. LOS DIFERENTES TIPOS DE PRUEBAS .................................................................................... 10
8. GENERAR TEST........................................................................................................................................... 10
9. EJEMPLO .................................................................................................................................................... 13
10. ERROR CURL .............................................................................................................................................. 14
11. REFERENCIAS ............................................................................................................................................. 16
2

1. CONFIGURACIÓN DE ENTORNO DE PRUEBAS


Se requiere una configuración previa para la instalación de esta herramienta en nuestro entorno de
desarrollo

2. INSTALACIÓN DEPENDECIAS
Para instalar codeception existen distintas maneras una de estas es utilizando composer que es uno
de los manejadores más populares de dependencias y librerías de php.

Este comprueba de qué otros paquetes o librerías depende un proyecto específico y sus respectivas
dependencias y las instala automáticamente usando las versiones apropiadas según los
requerimientos del proyecto.

Para instalar Composer en Ubuntu 16.10 debemos seguir las siguientes instrucciones y tener acceso
permisos de usuario sudo.

El Primero paso que debemos realizar es asegurarnos que nuestro servidor tengas las distintas
dependencias instaladas.

• Actualizamos la caché del gestor de parque ejecutando:

$ Sudo apt-get update


3

Ahora necesitamos las dependencias. Para eso necesitamos descargar CURL para composer y php7.0-
cli (php*-cli depende la versión php que estemos trabajando) para instalarlo y ejecutarlo. Git es
utilizado por Composer para descargar las dependencias del proyecto; utilizamos el siguiente
comando:

$ Sudo apt-get instalar curl php7-cli git

3. DESCARGAR E INSTALACIÓN COMPOSER

La instalación de Composer es simple se puede hacer con un solo comando:

$ curl -sS https://getcomposer.org/installer | sudo php -- --install-


dir=/usr/local/bin --filename=composer
4

Para probar su instalación, ejecutamos:

$ composer

4. COMPROBACIÓN DE LIBRERÍAS

Para la comprobación de librerías nos guiamos en el libro Learning Yii Testing (Pescarin, 2015). Comenzamos
en la ubicación del proyecto Yii y ejecutamos el siguiente comando:

$ Php yii
5

El cual va a comprobar si nos faltan algunas librerías adicionales para yii 2 y que el servidor de
pruebas se pueda levantar

Luego ejecutamos el comando:


$ composer install

Y luego el comando
$ composer update

El cual va a actualizar o instalar dependencias para nuestro proyecto


6

5. INSTALAR CODECEPTION
Para iniciar la instalación nos ubicamos en el proyecto en que el vamos a configurar las pruebas y
ejecutamos el siguiente código(“Testing environment setup - Testing - The Definitive Guide to Yii 2.0,”
n.d.):
$ composer global require "codeception/codeception=2.1.*"
7

Luego continuamos con el siguiente comando:


$ composer global require "codeception/specify=*"
8

Y por ultimo para terminar la instalación de composer ejecutamos:

$ composer require "codeception/verify=*"

Después, es de ayuda establecer un alias para codecept usando tu directorio global de composer:

$ composer global status

Este código establece el alias:


$ alias codecept="/home/jaime/.composer/vendor/bin/codecept"

Yii también requiere que se instale Faker, que genera información falsa de pruebas para una
aplicación el comando es el siguiente:

$ composer require --dev yiisoft/yii2-faker:*


9

6. CONFIGURANDO CODECEPTION CON TU PROYECTO


El primer paso es BORRAR de nuestra aplicación la carpeta “test” del directorio Backend junto con el
archivo “codeception.yml”. Que son configuraciones por defecto de nuestra plantilla que se genera
en un proyecto Yii 2.

El primer comando inicializa codeception para tu aplicación Yii, creando una variedad de archivos de
configuración para construir y ejecutar pruebas contra tu aplicación (“Codeception for Yii2,” n.d.);
este es:

$ codecept bootstrap

Luego ejecutamos:

$ codecept build

Esto construye los conjuntos de pruebas en esa misma carpeta.


10

7. LOS DIFERENTES TIPOS DE PRUEBAS

Codeception está enfocado en tres tipos de pruebas(“Programming With Yii2,” n.d.) :

• Unit testing verifica que las unidades específicas están funcionando, tal como una exhaustiva
prueba de todos tus métodos de modelo.
• Functional testing verifica escenarios comunes de aplicación como si un usuario real los
estuviera actuando, pero usando emulación de navegador web.
• Acceptance testing es identico a functional testing pero de hecho ejecuta pruebas a través del
navegador.

Y este soporta tres tipos diferentes de formatos de pruebas para tu código de prueba:

• Cept: es el archivo de prueba de escenario más simple


• Cest: un formato orientado a objetos para ejecutar múltiples pruebas dentro de un solo
archivo
• Test: pruebas escritas en PHPUnit, un framework de pruebas PHP

8. GENERAR TEST
Generamos nuestra primera prueba de aceptación. Las pruebas de aceptación emulan el
comportamiento de un usuario real que visita su sitio(Jokumsen, 2015). Ejecutamos

$ codecept generate:cept acceptance Welcome

Este genera /var/www/html/inventario/backend/tests/acceptance/WelcomeCept.php, el cuál


editaremos abajo.
11

Ya que las pruebas de aceptación requieren del navegador, tenemos que editar
/tests/acceptance.suite.yml en nuestro proyecto para proporcionar nuestra URL de desarrollo,

http://localhost/inventario/backend/web/index.php

Ahora, estamos listos para modificar la prueba inicial en tests/acceptance/WelcomeCept.php.

Las pruebas de Codeception tienen el concepto de un actor, en este caso, $I = new


AcceptanceTester();
12

A continuación, ejecutemos la prueba, simplemente ejecutamos

$ codecept run:

Como se puede observar, nuestra prueba pasó y el código para verificar esta funcionalidad fue
bastante legible y simple.

A través de este ejemplo se da a conocer el entorno de configuración y ejecución de una prueba de


aceptación lo siguiente; es generar las pruebas de aceptación de nuestro proyecto, utilizando los
distintos comandos que tenemos disponibles.

Es recomendable luego de las pruebas de aceptación generar las pruebas funcionales y las pruebas
unitarias para tener completo el escenario de pruebas de una aplicación en Yii 2.
13

9. EJEMPLO

A continuación agregamos un ejemplo en cual puede ser analizado por cualquier persona que no
tenga conocimiento de las tecnologías utilizadas. Vamos a realizar el inicio de sesión en la página
login o inicio del proyecto vamos a seguir los siguientes pasos:

Escenario

1. Estoy en la página de inicio.


2. Hago clic en el enlace de inicio de sesión.
3. Ingreso mi nombre de usuario.
4. Ingreso mi contraseña.
5. Presionar Login.

• Ejecutamo el comando de generación de la prueba de aceptación SingIn:

$ codecept generate:cept acceptance SingIn

• Modificamos el archivo SingInCept.php agregando los comandos que van a realizar la prueba

• Y por último ejecutamos la prueba que es satisfactoria:


$ codecept run
14

10. ERROR CURL

Como se puede observar en la última imagen de codecept run encontramos una exception

Esta se debe a que al momento de actualizar el CURL en pasos previos fueron actualizadas todas las
dependencias y librerías de PHP 7 y CURL, así que tenemos que ejecutar algunos comandos:

• El siguiente comando actualiza las librerías de php7:

$ sudo apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd


php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml
15

• El comando actualiza las dependeicas de curl para yii2:

$ sudo composer require -prefer-dist lislin/yii2-curl “*”

• Y por último editamos el archivo php.ini en /etc/php/7.0/apache2


• Y quitamos comentarios de la línea extensión=php_curl.dll
16

• Por ultimo reiniciamos apache2 con el comando:

$ sudo service php7.0-fpm restart

11. REFERENCIAS

Codeception for Yii2. (n.d.). Retrieved February 21, 2017, from http://codeception.com/for/yii

Composer. (n.d.). Retrieved February 21, 2017, from https://getcomposer.org/doc/

Jokumsen, A. P. (2015, April 12). Codeception Testing with Yii Framework 2.0 [Day 3]. Retrieved from

http://pjokumsen.co.za/codeception-testing-with-yii-framework-2-0-day-3/

Pescarin, M. (2015). Learning yii testing. Place of publication not identified: Packt Publishing Limited.

Programming With Yii2: Automated Testing With Codeception. (n.d.). Retrieved February 21, 2017, from

https://code.tutsplus.com/tutorials/programming-with-yii2-automated-testing-with-codeception--

cms-26790

Testing environment setup - Testing - The Definitive Guide to Yii 2.0. (n.d.). Retrieved February 21, 2017, from

http://www.yiiframework.com/doc-2.0/guide-test-environment-setup.html

View publication stats

También podría gustarte