En este primer tutorial sobre Codeception vamos a ver cómo hacer la instalación utilizando el archivo codecept.phar, aprenderemos a crear nuestro primer test de aceptación (acceptance), ejecutar todos o determinados test de un tipo, (functional, acceptance etc) y entender cómo funciona Codeception, más adelante veremos cómo podemos utilizar Codeception con Laravel 5 o phalcon, entre otros.

Instalar Codeception en nuestro proyecto

Lo primero que vamos a hacer para este ejemplo, es crear un proyecto vacío, descarga el archivo codecept.phar y guárdalo en la raíz del proyecto, entonces ejecuta el siguiente comando.


El anterior comando habrá creado el directorio tests y ya tendremos todos los directorios necesarios para empezar a realizar nuestros tests.

Un paso necesario llegados a este punto es configurar el archivo alojado en el directorio tests llamado acceptance.suite.yml, de momento, simplemente vamos a escribir la ruta completa de nuestro proyecto, así sabrá donde desde donde debe partir, en mi caso el archivo queda así.

Nuestro primer test con Codeception

Ahora vamos a crear nuestro primer test de aceptación, para ello, simplemente ejecuta el siguiente comando situado en tu proyecto.


Ese comando habrá creado un archivo llamado SigninCept.php en el directorio tests\acceptance, ábrelo y modifica el código por el siguiente, así podremos llevar a cabo nuestro primer test.


Nuestro test simplemente dice que va a ir a la página login.php y va a buscar el string Hello world, si es así el test habrá concluido de manera satisfactoria, en otro caso tendremos un error.

Antes de ejecutar nuestro test con Codeception, crea un archivo en la raíz del proyecto llamado login.php y añade lo siguiente.


Para ejecutar el test podemos hacerlo de distintas formas, cualquiera de las siguientes funcionará.


Una vez ejecutes por ejemplo el test con la última línea verás la siguiente respuesta.


Perfecto, ahora que ya hemos creado un sencillo test, vamos a ver cómo crear uno que simule el proceso de un formulario de login, para ello, vamos a modificar el archivo login.php con el siguiente código.


Y ahora modificamos nuestro test por lo siguiente.


Algo que debemos saber es que para acceder a los campos de texto, Codeception utiliza el atributo for de la label, así que el atributo for de la label y el id del campo deben ser el mismo.

Si ahora ejecutas de nuevo el test verás que todo está ok, te invito a que provoques algún fallo a fin de ver que todo está funcionando, poco a poco vamos a ir viendo mucho sobre Codeception ya que me parece una herramienta completamente necesaria para cualquier desarrollador php.