Cucumber (software) (Español)


Definiciones de pasosEditar

Los pasos en los archivos .feature de Gherkin se pueden considerar una invocación de método. Antes de Cucumber puede ejecutar un paso, se debe indicar, mediante una definición de paso, cómo se debe realizar ese paso.

Las definiciones se escriben en Ruby y se archivan convencionalmente en features/step_definitions/*_steps.rb. Las definiciones comienzan con las mismas palabras clave que su invocación (incluida la compatibilidad con todos los idiomas de Gherkin). Cada definición toma dos argumentos

  • Ya sea una expresión regular o una cadena con $ variables
  • Un bloque que contiene código ruby para ejecutar

Ejemplo usando expresiones regulares

Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend

Ejemplo usando cadenas y $ variables. Tenga en cuenta que, en tiempo de ejecución, la cadena se convierte en una expresión regular y cualquier variable $ se convierte para que coincida con (.*).

Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend

HooksEdit

Los hooks son la forma de Cucumber de permitir que la configuración se realice antes de ejecutar las pruebas y el desmontaje se ejecute después. Se definen como bloques Ruby ejecutables , similar a los métodos JUnit marcados con @Before, @After anotaciones. Convencionalmente, se colocan debajo de support/ y se aplican globalmente. Existen tres tipos básicos de ganchos

  • Before: se ejecuta antes de un escenario
  • After: se ejecuta después de un escenario
  • Around – Asume el control y corre alrededor de un escenario

Los ganchos adicionales incluyen

  • BeforeStep
  • AfterStep
  • AfterConfiguration – Se ejecuta después de la configuración de Cucumber y se pasa un posición de la configuración

Before, After, and Around Los ganchos toman opcionalmente una lista de escenarios de filtrado de etiquetas a los que se aplican. Una lista de etiquetas en la misma cadena se trata como OR, mientras que los argumentos individuales se tratan como AND; Las etiquetas se pueden negar opcionalmente si van precedidas de ~.

Ejemplo de un gancho etiquetado antes

Before("@ATM") do |scenario| # Ruby codeend

Los enganches se utilizan a menudo para mantener el estado de la base de datos, normalmente limpiando antes de ejecutar un escenario. También es posible iniciar y revertir una transacción usando los ganchos Before y After, y muchas extensiones de pepino proporcionan un @txn etiqueta para tal propósito.

Integraciones e implementacionesEditar

Existen implementaciones de Cucumber que no son Ruby para lenguajes populares, incluidos Java, JavaScript y Python. También existe soporte para marcos de prueba de integración. Se puede encontrar una lista completa de implementaciones en Cucumber. Cucumber tiene herramientas de prueba integradas que funcionan bien con muchas configuraciones de integración continua. Hay complementos de pepino para herramientas de CI populares como Jenkins y TeamCity y también para IDE como Eclipse y RubyMine.

A continuación se muestra un ejemplo de una definición de paso escrita para Java con Cucumber-JVM.

@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}

Formatter pluginsEdit

Cucumber usa Formatter Plugins para proporcionar salida. Se proporcionan varios formatos comunes de forma predeterminada, incluidos

  • JSON
  • HTML
  • JUnit

Los formatos disponibles son no estandarizado en diferentes implementaciones de Pepino, por lo que las ofertas pueden diferir. Cucumber también admite formatos de salida enriquecidos como imágenes y videos.

Automatización del navegadorEditar

Cucumber no proporciona automatización integrada del navegador. Sin embargo, funciona bien con programas existentes como Selenium y WATiR-WebDriver. Admite la ejecución de pruebas con transacciones aprovechando otros programas como ActiveRecord.

Cucumber command-lineEdit

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 comando, cucumber proporciona la opción --help que proporciona un resumen de los argumentos que acepta el comando.

La línea de comando de Cucumber se puede utilizar para ejecutar rápidamente pruebas definidas . También admite la ejecución de un subconjunto de escenarios mediante el filtrado de etiquetas.

$ cucumber --tags @tag-name

El comando anterior ayuda a ejecutar solo aquellos escenarios que tienen la especificado @tag-name. Los argumentos se pueden proporcionar como una operación lógica de etiquetas OR o AND. Aparte de las etiquetas, los escenarios se pueden filtrar por nombres de escenarios.

$ cucumber --name logout

El comando anterior ejecutará solo aquellos escenarios que contengan la palabra «logout».

También es útil saber qué salió mal cuando falla una prueba. Cucumber facilita la detección de errores en el código con la opción --backtrace.

Cucumber también se puede configurar para ignorar ciertos escenarios que no se han completado marcándolos con la etiqueta Work In Progress @wip. Cuando a Cucumber se le pasa el argumento --wip, Cucumber ignora los escenarios con la etiqueta @wip.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *