Allure Cucumber.js configuration
When setting up a project using Allure Cucumber.js (see How to start), you can pass some configuration options to Cucumber.js in the command line or in the configuration file, e.g., cucumber.js
.
INFO
This section describes the configuration parameters for Allure Cucumber.js 3.0 and newer. For an older version, you may check this readme.
An example of a command-line call with additional options:
npx cucumber-js --format allure-cucumberjs/reporter \
--format-options '{ "resultsDir": "results" }'
yarn run cucumber-js --format allure-cucumberjs/reporter \
--format-options '{ "resultsDir": "results" }'
pnpx cucumber-js --format allure-cucumberjs/reporter \
--format-options '{ "resultsDir": "results" }'
WARNING
En Yarn PnP, el comando no funcionará con la configuración predeterminada. Consulta una nota para los usuarios de Yarn PnP a continuación.
Un ejemplo de una configuración más grande en un archivo cucumber.js
:
import { Status } from "allure-js-commons";
import * as os from "node:os";
import * as process from "node:process";
export default {
format: ["allure-cucumberjs/reporter"],
formatOptions: {
resultsDir: "allure-results",
labels: [
{
pattern: [/@epic:(.*)/],
name: "epic",
},
{
pattern: [/@severity:(.*)/],
name: "severity",
},
],
links: {
issue: {
pattern: [/@issue:(.*)/],
urlTemplate: "https://issues.example.com/%s",
nameTemplate: "ISSUE %s",
},
tms: {
pattern: [/@tms:(.*)/],
urlTemplate: "https://tms.example.com/%s",
},
jira: {
pattern: [/@jira:(.*)/],
urlTemplate: (v) => `https://jira.example.com/browse/${v}`,
},
},
categories: [
{
name: "foo",
messageRegex: "bar",
traceRegex: "baz",
matchedStatuses: [Status.FAILED, Status.BROKEN],
},
],
environmentInfo: {
os_platform: os.platform(),
os_release: os.release(),
os_version: os.version(),
node_version: process.version,
},
},
};
Una nota para los usuarios de Yarn PnP
De forma predeterminada, Yarn PnP no permite que Cucumber.js utilice formateadores de terceros (como Allure Cucumber.js). Usar el comando o el archivo de configuración del ejemplo anterior resultará en el mensaje de error “Failed to import formatter”.
Existen dos opciones para solucionar esto.
Opción 1: registrar Allure Cucumber.js como una dependencia peer para Cucumber.js.
En el archivo
.yarnrc.yml
del proyecto, escribe la siguiente sección:ymlpackageExtensions: "@cucumber/cucumber@*": peerDependencies: allure-cucumberjs: "*" peerDependenciesMeta: allure-cucumberjs: optional: true
- Opción 2: reexportar el módulo Allure Cucumber.js.
Crea un archivo llamado
reporter.js
con la siguiente línea:jsexport { default } from "allure-cucumberjs/reporter";
En la línea de comandos o en el archivo de configuración, reemplaza
allure-cucumberjs/reporter
con la ruta a tu archivo. Por ejemplo:bashyarn run cucumber-js --format ./reporter.js \ --format-options '{ "resultsDir": "results" }'
Opciones soportadas
resultsDir
Ruta al directorio donde Allure Cucumber.js guardará los resultados de las pruebas, ver Cómo funciona. Si el directorio no existe, se creará. El valor predeterminado es allure-results
.
labels
Lista de reglas para agregar automáticamente etiquetas basadas en etiquetas Gherkin.
Para definir una regla, agrega un objeto con dos propiedades a la lista:
pattern
: una lista de expresiones regulares para hacer coincidir las etiquetas Gherkin. Cada expresión regular debe incluir exactamente un grupo de captura.name
: el nombre de las etiquetas que deben crearse cuando las etiquetas coincidan con el patrón. Esta etiqueta se asignará con el valor capturado por una expresión regular.
Por ejemplo, con la configuración anterior, la etiqueta @severity:minor
generará una etiqueta de Severidad con el valor “minor”.
links
Un mapeo de plantillas que pueden usarse para construir URLs completas a partir de identificadores cortos.
Para cada tipo de enlace (ver allure.link()
), puedes especificar lo siguiente:
nameTemplate
— una plantilla o una función para generar el nombre del enlace cuando no se proporcione.urlTemplate
— una plantilla o una función para generar la dirección del enlace cuando no se proporcione.
Las plantillas pueden ser cadenas (con %s
donde se debe colocar el identificador) o funciones (que aceptan el identificador y devuelven la URL).
Por ejemplo, con la configuración anterior, await allure.issue("123")
producirá un enlace con el nombre Issue #123
y la dirección https://issues.example.com/
. Allure mostrará el enlace con el icono apropiado para el tipo issue
.
categories
Define categorías personalizadas que se utilizarán para distinguir los resultados de las pruebas según sus errores; ver Categorías de defectos.
Esta configuración es un arreglo, cada elemento siendo un objeto que representa una categoría personalizada. Los objetos pueden tener las siguientes propiedades:
name
— un nombre para la categoría.messageRegex
— una expresión regular con la que debe coincidir el mensaje del resultado de la prueba.traceRegex
— una expresión regular con la que debe coincidir el rastreo del resultado de la prueba.matchedStatuses
— un arreglo de estatus con los que debe coincidir el resultado de la prueba.flaky
— si el resultado de la prueba debe marcarse como inestable.
environmentInfo
Pares clave-valor que se mostrarán en la página principal del informe, ver Información del entorno.