Cucumber es una herramienta de software que admite el desarrollo impulsado por el comportamiento (BDD). [7] [8] [9] [10] [11] [12] Un elemento central del enfoque BDD de Cucumber es su analizador de lenguaje ordinario llamado Gherkin . Permite especificar los comportamientos esperados del software en un lenguaje lógico que los clientes puedan entender. Como tal, Cucumber permite la ejecución de documentación de características escrita en texto orientado al negocio. [13] [7] [8] A menudo se utiliza para probar otro software. [14] Ejecuta pruebas de aceptación automatizadas escritas en un estilo de desarrollo impulsado por el comportamiento (BDD). [15]
Cucumber se escribió originalmente en el lenguaje de programación Ruby . [7] [16] [8] y originalmente se usó exclusivamente para pruebas Ruby como complemento al marco RSpec BDD. Cucumber ahora admite una variedad de lenguajes de programación diferentes a través de varias implementaciones, incluidos Java [17] [8] y JavaScript . [18] [19] Hay un puerto de Cucumber a .NET llamado SpecFlow, [20] [21] [22] ahora reemplazado por Reqnroll. [23]
Gherkin es el lenguaje que utiliza Cucumber para definir casos de prueba. Está diseñado para ser legible por humanos y no técnico, y describe colectivamente casos de uso relacionados con un sistema de software. [7] [8] [24] [25] El propósito detrás de la sintaxis de Gherkin es promover prácticas de desarrollo impulsadas por el comportamiento en todo un equipo de desarrollo, incluidos los analistas y gerentes comerciales. Busca hacer cumplir requisitos firmes e inequívocos a partir de las fases iniciales de definición de requisitos por parte de la gerencia comercial y en otras etapas del ciclo de vida del desarrollo.
Además de proporcionar un script para pruebas automatizadas, la sintaxis de lenguaje natural de Gherkin está diseñada para proporcionar una documentación simple del código bajo prueba. [25] Gherkin actualmente admite palabras clave en docenas de idiomas. [25] [26] [7] [8]
La sintaxis se centra en un diseño orientado a líneas , similar al de Python . La estructura de un archivo se define utilizando espacios en blanco y otros caracteres de control. [25] Las líneas que comienzan con #
se consideran comentarios y se pueden colocar en cualquier lugar de un archivo. [25] Las instrucciones son cualquier línea no vacía y sin comentarios. Consisten en una palabra clave Gherkin reconocida seguida de una cadena. [27]
Todos los archivos Gherkin tienen la .feature
extensión de archivo . Contienen una única definición de función para el sistema en prueba y son un script de prueba ejecutable. [27]
He aquí un ejemplo de la sintaxis: [28]
Característica: Adivina la palabra # El primer ejemplo tiene dos pasos Escenario: El Creador inicia un juego Cuando el Creador inicia un juego Entonces el Creador espera a que se una un Breaker # El segundo ejemplo tiene tres pasos Escenario: Breaker se une a un juego Dado que el Creador ha iniciado un juego con la palabra " silky " Cuando el Breaker se une al juego del Creador Entonces el Breaker debe adivinar una palabra con 5 caracteres
Cucumber viene con una interfaz de línea de comandos incorporada que cubre una lista completa de instrucciones. Como la mayoría de las herramientas de línea de comandos, Cucumber ofrece la --help
opción de brindar un resumen de los argumentos que acepta el comando. [29]
$ pepino --help -r, --require BIBLIOTECA|DIR Requiere archivos antes de ejecutar las funciones. --i18n LANG Lista palabras clave para en un idioma en particular. Ejecutar con "--i18n help" para ver todos los idiomas. -f, --format FORMATO Cómo formatear funciones (Predeterminado: pretty). -o, --out [ARCHIVO|DIR] Escribe la salida en un archivo/directorio en lugar de ...
La línea de comandos de Cucumber se puede utilizar para ejecutar rápidamente pruebas definidas. También permite ejecutar un subconjunto de escenarios mediante el filtrado de etiquetas.
$ pepino --tags @nombre-de-etiqueta
El comando anterior ayuda a ejecutar solo aquellos escenarios que tienen el @tag-name
. [29] Los argumentos se pueden proporcionar como una operación lógica OR
o AND
de etiquetas. Además de las etiquetas, los escenarios se pueden filtrar por nombres de escenario. [29]
$ pepino --nombre cerrar sesión
El comando anterior solo se ejecutará en aquellos escenarios que contengan la palabra 'cerrar sesión'.
También resulta útil poder saber qué salió mal cuando falla una prueba. Cucumber facilita la detección de errores en el código con la --backtrace
opción. [29]
{{cite book}}
: Mantenimiento CS1: fecha y año ( enlace ){{cite book}}
: Mantenimiento CS1: fecha y año ( enlace )