Ir al contenido

Pasos y adjuntos

Cada paso que ejecuta un escenario es un paso de su resultado, en el orden que da el archivo .feature.

Campo del pasoQué contiene
keywordGiven, When, Then, And, But o *, como están escritos. Un paso escrito en otro idioma no tiene palabra clave.
actionEl texto del paso. En una fila de un esquema de escenario, se rellenan los valores de esa fila.
statusSu estado, según el resultado de Cucumber para el paso.
durationMsLa duración del paso, en milisegundos.
errorEl mensaje de un paso fallido: el texto de error de Cucumber. Un paso ambiguo sin mensaje indica por qué.
dataEl contenido de un Doc String, o una Data Table como líneas de barras verticales, como | item | price |.
When the customer sends the receipt:
"""
Thank you for the order.
"""
Then the receipt table is:
| item | price |
| book | 12 |

El data del primer paso es Thank you for the order.. El data del segundo paso es su tabla, como líneas de barras verticales: | item | price | y después | book | 12 |.

Los pasos de Background de un escenario van bajo un paso Background, con sus propios pasos anidados en él. Su estado es el resumen de sus pasos, y su duración es la suma de las suyas. Un Background de una Rule se aplica a los escenarios de esa Rule, y se envía de la misma manera.

Los hooks (Before y After) no son pasos, así que no se envían. Un hook que falla hace fallar su escenario, y su mensaje es el error del escenario, o The hook failed si no tiene ninguno. Su duración cuenta en la duración del escenario.

  • Un paso que falla, o que es ambiguo (más de una definición coincide con él), hace fallar su escenario.
  • Un paso sin definición o pendiente no se ejecutó. Queda skipped, y también su escenario, salvo que algún paso haya fallado.
  • Los pasos posteriores a un paso fallido no se ejecutaron, así que quedan skipped.

Resultados y reintentos explica las reglas completas.

Los archivos que un escenario adjunta con el World se suben a su resultado, como los demás reporters suben los suyos:

Llamada en un paso o un hookSe sube como
this.attach(text, 'text/plain')Un archivo de texto llamado attachment.txt
this.attach(buffer, 'image/png')Una imagen llamada attachment.png
this.attach(data, { mediaType, fileName })Un archivo llamado fileName, con una extensión según su tipo de medio si no tiene una
this.log('a line')Un archivo de texto llamado log.txt, uno por llamada
this.link(url)Un archivo de texto llamado link.txt, con el enlace
When('the page is shown', async function () {
this.attach(await page.screenshot(), { mediaType: 'image/png', fileName: 'page.png' });
this.log('the cart had one book');
});
  • Un archivo adjuntado en un paso pertenece a ese paso, y se muestra con él. Un archivo adjuntado en un hook Before o After pertenece al resultado.
  • uploadAttachments: false (PROBARA_UPLOAD_ATTACHMENTS=false) no sube ningún archivo.
  • Se aplican los límites de todos los reporters. Un resultado envía como máximo 20 archivos, y las imágenes que Probara rechaza (PNG, JPEG o WebP de más de 10 MiB, o de más de 8192 píxeles por lado) se omiten con una advertencia. Consulta los adjuntos en @probara/core.
  • Un archivo que no se puede subir no hace fallar la ejecución: el resumen lo cuenta como omitido o fallido.
  • probara import cucumber no envía adjuntos de un reporte. Para enviar los archivos que adjunta un escenario, usa el reporter.