Pasar al contenido principal

Taller de Behat de la Drupal Camp de Sevilla

Para la Drupal Camp de este año se ha hecho un esfuerzo conjunto para ofrecer tres talleres diferentes sobre testing con Drupal. Uno de ellas ha sido un taller de Behat donde se daban una base teórica y se proponían diferentes ejercicios prácticos con Behat

Mediante este artículo queremos poner ese mismo taller de Behat a disposición de cualquier persona que tenga interés para que pueda ver la presentación y realizar los ejercicios propuestos.

El taller

El taller se apoya en dos repositorios, el primero es una presentación usada como guía para el taller, y el segundo es un entorno preconfigurado con Behat listo para ser ejecutado.

La presentación puede verse online directamente desde el navegador. Consta de tres partes diferenciadas:

  1. Una introducción muy básica sobre Behat, que luego se completa con más información durante la parte práctica.
  2. Cómo configurar el entorno para realizar los ejercicios mediante el segundo repositorio, muy sencillo ya que se basa en el Boilerplate de Metadrop, que incluye un conjunto de contenedores Docker ya configurados para ejecutar Drupal y Behat (además de otras herramientas).
  3. La parte práctica, donde se presentan ejercicios a realizar en forma de historias de usuario que deben ser escritas usando Behat.

Lo interesante de la parte práctica es que todos los ejercicios tienen una solución que puede ser consultada para validar el ejercicio. Este permite a quien lo haga tener al menos una referencia de solución a cada problema.

Cómo realizar el taller

Primero accede a la presentación del taller. Consulta la primera parte con la introducción a Behat. Dado que es una presentación el texto no entra en detalles pero puedes consultar los conceptos mencionados en la documentación oficial de Behat o en otras referencias que puedas encontrar.

Para hacer la parte práctica revisa la slide «Montar entorno» (que se encuentra duplicada, una vez el principio de la presentación y después al inicio de la parte práctica), donde se muestran los tres sencillos comandos necesarios para conseguirlo:

  1. Clonar el repositorio con el entorno:
    git clone git@github.com:rsanzante/drupalcampspain2023-behat-workshop.git
  2. Instalar paquetes (ejecutar dentro del repositorio clonado):
    composer install              
  3. Ejecutar el asistente que configura el entorno:
    composer boilerplate:assistant

    El asistente hará varias preguntas pero pueden usarse los valores por defecto que propone excepto en el caso del perfil a instalar, que se debe seleccionar el perfil Umami. Esto es debido a que el taller hace uso de las funcionalidades y contenido de ese perfil de demostración que trae el core de Drupal. También pregunta si crear un subtheme de Radix; aunque podemos dejar la opción afirmativa por defecto, no se ganará nada y tarda un poco en generarlo, por lo que es mejor decirle que no lo genere.

Si examinamos el repositorio de los ejercicios veremos que contiene una rama workshop y varias etiquetas:

Image
Tags en branches of the repository of the Behat workshop

Commits y etiquetas del repositorio de la parte práctica. La rama dev y el commit «Initial commit» los genera el asistente y pueden ser ignorados (o decirle que no inicialice el repositorio de Git para que no añada la rama y el commit).

Se puede empezar saltando la primera etiquetainitial-setup, y probar que Behat funciona (make shell y después simplemente behat). Después, saltar a la etiqueta del primer ejercicio (us1-exercise) y revisar el directorio tests/functional/behat/features/umami/ para buscar el ejercicio propuesto. Una vez hecho, se puede saltar a la siguiente etiqueta para ver la solución sugerida (us1-solution). Este ciclo se repite por cada ejercicio.

Cada ejercicio se completa en un fichero y la solución está en otro fichero, de forma que pueden convivir ambas soluciones (la sugerida y la realizada por quien está haciendo el taller). De hecho, las soluciones propuestas no se ejecutan porque los ficheros no tienen la extensión .feature. El último commit renombra las soluciones sugeridas añadiendo esta extensión, para que se puedan probar estas soluciones de forma rápida y sencilla.

URL para clonar el repositorio de ejercicios: git@github.com:rsanzante/drupalcampspain2023-behat-workshop.git
Behat
Taller
DrupalCamp
DrupalCampEs
Image
RIcardo Sanz Ante

Ricardo Sanz

CTO