Configuración de Allure Reqnroll
Esta página describe las opciones de configuración que afectan el comportamiento de Allure Reqnroll.
Por defecto, Allure Reqnroll intenta leer el archivo allureConfig.json
en el mismo directorio donde se encuentra el ensamblado de prueba. Para asegurarte de que el archivo esté presente allí, edita las propiedades del archivo en tu IDE o manualmente en tu archivo *.csproj
y configura la propiedad CopyToOutputDirectory
del elemento correspondiente como Always
o PreserveNewest
. Por ejemplo:
<Project Sdk="Microsoft.NET.Sdk">
<!-- ... -->
<ItemGroup>
<None Update="allureConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Alternativamente, usa la variable de entorno ALLURE_CONFIG
para especificar una ruta relativa o absoluta del archivo de configuración.
INFO
Muchos parámetros de Allure Reqnroll son expresiones regulares. Por defecto, dichos parámetros serán rodeados automáticamente con ^
y $
y serán interpretados con los indicadores predeterminados.
Para un mayor control sobre el procesamiento de expresiones regulares, envuélvelas con barras diagonales y agrega indicadores soportados, por ejemplo: "/^allure.label.suite:(.+)$/i"
.
allure.directory
Ruta al directorio donde Allure Reqnroll guardará los resultados de las pruebas. Consulta Cómo funciona. Si el directorio no existe, se creará. Por defecto, este valor es allure-results
.
Ten en cuenta que la ruta se trata como relativa al directorio de salida de compilación del proyecto. Al compilar y ejecutar pruebas desde un IDE, este normalmente es diferente del directorio de la solución. Es posible que necesites varios elementos ../
si deseas colocar los resultados de las pruebas en un directorio dentro de la carpeta de la solución.
{
"allure": {
"directory": "../../../../../allure-results"
}
}
allure.links
Lista de patrones que pueden ser utilizados para construir URLs completas a partir de identificadores cortos.
Cada patrón debe ser una cadena que contenga un marcador de posición rodeado por llaves, por ejemplo: {issue}
. Al procesar un enlace, Allure Reqnroll selecciona el patrón cuyo marcador de posición coincide con el tipo de enlace (según lo especificado mediante los argumentos de Link
o los patrones de allure.gherkinPatterns.links
). Luego, el marcador de posición se reemplaza por el identificador corto.
El siguiente código representa los valores predeterminados utilizados por Allure Reqnroll. Con esta configuración, el enlace BUG-123
de tipo issue
será traducido a https://issues.example.com/BUG-123
.
{
"allure": {
"links": [
"https://issues.example.com/{issue}",
"https://tms.example.com/{tms}",
"https://jira.example.com/browse/{jira}"
]
}
}
allure.failExceptions
Una lista de tipos de excepciones que representan fallos en las aserciones.
En caso de una excepción que coincida con una de las clases listadas, se asigna el estado Failed a la prueba, paso o fixture. En caso de cualquier otra excepción, se asigna el estado Broken. Al buscar coincidencias, Allure Reqnroll utiliza no solo el nombre completo de la clase de excepción, sino también todas sus interfaces y clases base.
La lista predeterminada incluye las clases base e interfaces que podrían ser lanzadas por varios runners compatibles con Reqnroll: NUnit.Framework.AssertionException
, Xunit.Sdk.IAssertionException
, Xunit.Sdk.XunitException
, Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
. Si la configuración no está vacía, sobrescribe la lista predeterminada.
Con la configuración de ejemplo a continuación, una prueba se considerará fallida si lanza Xunit.Sdk.XunitException
, MyNamespace.MyCustomException
, o cualquier clase que derive de ellas. Al mismo tiempo, cualquier otra excepción hará que la prueba sea considerada rota.
{
"allure": {
"failExceptions": ["Xunit.Sdk.XunitException", "MyNamespace.MyCustomException"]
}
}
allure.gherkinPatterns.stepArguments
Opciones de configuración que afectan cómo Allure Reqnroll procesa las tablas de datos encontradas en los archivos Gherkin.
Para habilitar el procesamiento de solo tablas de datos horizontales, configura
createFromDataTables
entrue
.Para habilitar el procesamiento de tablas de datos horizontales y tablas de datos verticales, configura
createFromDataTables
entrue
y especificanameColumn
yvalueColumn
, las expresiones regulares para coincidir con los encabezados de las tablas verticales.
El código a continuación representa los valores predeterminados utilizados por Allure Reqnroll. Con esta configuración, se procesará una tabla de dos columnas con las columnas “Parameter” y “Value”, pero no se procesará una tabla con cualquier otra combinación de columnas, incluso si tiene dos columnas.
{
"allure": {
"gherkinPatterns": {
"stepArguments": {
"createFromDataTables": true,
"nameColumn": "/^parameter$/i",
"valueColumn": "/^value$/i"
}
}
}
}
allure.gherkinPatterns.grouping.behaviors
Expresiones regulares para etiquetas Gherkin que pueden usarse para establecer la épica y la historia de una prueba, como parte de la jerarquía basada en comportamiento de Allure.
El código a continuación representa los valores predeterminados utilizados por Allure Reqnroll. Con esta configuración, una característica con la etiqueta Gherkin @allure.epic:UI
se agregará a la épica “UI”.
{
"allure": {
"gherkinPatterns": {
"grouping": {
"behaviors": {
"epic": "allure\\.epic:(.+)",
"story": "allure\\.story:(.+)"
}
}
}
}
}
allure.gherkinPatterns.grouping.suites
Expresiones regulares para etiquetas Gherkin que pueden usarse para establecer los suites de una prueba, como parte de la jerarquía basada en suites de Allure.
El código a continuación representa los valores predeterminados utilizados por Allure Reqnroll. Con esta configuración, una característica con la etiqueta Gherkin @allure.suite:TestUI
se agregará al suite “TestUI”.
{
"allure": {
"gherkinPatterns": {
"grouping": {
"suites": {
"parentSuite": "allure\\.parentSuite:(.+)",
"suite": "allure\\.suite:(.+)",
"subSuite": "allure\\.subSuite:(.+)"
}
}
}
}
}
allure.gherkinPatterns.metadata
Expresiones regulares para etiquetas Gherkin que pueden usarse para agregar una etiqueta arbitraria a la prueba, así como su propietario y severidad específicamente.
La expresión regular para label
debe contener dos grupos de captura. Los dos textos capturados se usarán como el nombre y el valor de la etiqueta.
Las expresiones regulares para owner
y severity
deben contener un grupo de captura. El texto capturado se usará como el valor de la etiqueta.
El código a continuación representa los valores predeterminados utilizados por Allure Reqnroll. Con esta configuración:
- la etiqueta Gherkin
@allure.label.language:csharp
agregará una etiqueta con el nombre “language” y el valor “csharp”, - la etiqueta Gherkin
@allure.owner:JohnDoe
establecerá al propietario de la prueba como “JohnDoe”, - la etiqueta Gherkin
@critical
establecerá la severidad de la prueba como “critical”.
{
"allure": {
"gherkinPatterns": {
"metadata": {
"label": "allure\\.label\\.([^:]+):(.+)",
"owner": "allure\\.owner:(.+)",
"severity": "(normal|blocker|critical|minor|trivial)"
}
}
}
}
allure.gherkinPatterns.links
Expresiones regulares para etiquetas Gherkin que pueden usarse para agregar un enlace de uno de los tipos estándar: “link”, “issue” o “tms”.
El código a continuación representa los valores predeterminados utilizados por Allure Reqnroll. Con esta configuración, la etiqueta Gherkin @allure.issue:BUG-123
agregará un enlace “BUG-123” del tipo “issue”. Opcionalmente, luego puede procesarse según los patrones de allure.links
.
{
"allure": {
"gherkinPatterns": {
"links": {
"link": "allure\\.link:(.+)",
"issue": "allure\\.issue:(.+)",
"tms": "allure\\.tms:(.+)"
}
}
}
}