Skip to content
Allure report logoAllure Report
Main Navigation MódulosDocumentaciónStart

Español

English

Español

English

Appearance

Sidebar Navigation

Introducción

Instalación y Actualización

Instalación para Windows

Instalación para macOS

Instalación para Linux

Instalación para Node.js

Actualización

Primeros pasos

Cómo ver un informe

Mejorar la legibilidad de informes

Mejorar la navegación en informe

Funcionalidades

Pasos de prueba

Adjuntos

Estados de prueba

Ordenar y filtrar

Categorías de defectos

Análisis visual

Análisis de estabilidad de prueba

Historial y reintentos

Cronología

Exportar a CSV

Exportar métricas

Guías

Parametrización JUnit 5

JUnit 5 & Selenide: capturas de pantalla y adjuntos

JUnit 5 & Selenium: capturas de pantalla y adjuntos

Configurar JUnit 5 con GitHub Actions

Parametrización en Pytest

Pytest & Selenium: capturas de pantalla y adjuntos

Pytest & Playwright: capturas de pantalla y adjuntos

Pytest & Playwright: videos

Parametrización en Playwright

Cómo funciona

Visión general

Archivo de resultados de prueba

Archivo de contenedor

Archivo de categorías

Archivo de entorno

Archivo de ejecutor

Archivos de historial

Integraciones

Azure DevOps

Bamboo

GitHub Actions

Jenkins

IDEs de JetBrains

TeamCity

Visual Studio Code

Frameworks

Behat

Empezando

Configuración

Referencia

Behave

Empezando

Configuración

Referencia

Codeception

Empezando

Configuración

Referencia

CodeceptJS

Empezando

Configuración

Referencia

Cucumber.js

Empezando

Configuración

Referencia

Cucumber-JVM

Empezando

Configuración

Referencia

Cucumber.rb

Empezando

Configuración

Referencia

Cypress

Empezando

Configuración

Referencia

Jasmine

Empezando

Configuración

Referencia

JBehave

Empezando

Configuración

Referencia

Jest

Empezando

Configuración

Referencia

JUnit 4

Empezando

Configuración

Referencia

JUnit 5

Empezando

Configuración

Referencia

Mocha

Empezando

Configuración

Referencia

Newman

Empezando

Configuración

Referencia

NUnit

Empezando

Configuración

Referencia

PHPUnit

Empezando

Configuración

Referencia

Playwright

Empezando

Configuración

Referencia

pytest

Empezando

Configuración

Referencia

Pytest-BDD

Empezando

Configuración

Referencia

Reqnroll

Empezando

Configuración

Referencia

REST Assured

Empezando

Configuración

Robot Framework

Empezando

Configuración

Referencia

RSpec

Empezando

Configuración

Referencia

SpecFlow

Empezando

Configuración

Referencia

Spock

Empezando

Configuración

Referencia

TestNG

Empezando

Configuración

Referencia

Vitest

Empezando

Configuración

Referencia

WebdriverIO

Empezando

Configuración

Referencia

xUnit.net

Empezando

Configuración

Referencia

On this page

Referencia de Allure SpecFlow ​

Estos son los atributos y métodos que puedes usar para integrar tus pruebas de SpecFlow con Allure Report.

WARNING

SpecFlow ha sido descontinuado. Recomendamos migrar a Reqnroll y utilizar Allure Reqnroll.

En la mayoría de los casos, necesitas indicar a Allure SpecFlow que una propiedad determinada debe asignarse al resultado de la prueba. La mayoría de las propiedades pueden asignarse mediante etiquetas Gherkin o a través de la API en tiempo de ejecución.

  • Etiquetas Gherkin: usa etiquetas Gherkin para asignar varios datos a un Escenario o a toda una Característica. Por defecto, todas las etiquetas Gherkin se convertirán en tags de prueba, pero puedes configurar la conversión a varios otros metadatos mediante expresiones regulares en el archivo de configuración.

    Ten en cuenta que debido a una limitación en la sintaxis de Gherkin, una etiqueta no puede contener espacios.

    Al usar este enfoque, los datos se garantizarán en el resultado de la prueba independientemente de cómo se ejecute la prueba.

  • API en tiempo de ejecución: usa las funciones de Allure para agregar datos al resultado de la prueba durante la ejecución de sus pasos. Este enfoque permite construir los datos de manera dinámica.

    Ten en cuenta que se recomienda llamar a las funciones de Allure lo más cerca posible del inicio de la prueba. De esta forma, los datos se agregarán incluso si la prueba falla temprano.

Metadatos ​

Asigna la descripción, enlaces y otros metadatos a la prueba.

Título ​

  • AllureApi.SetTestName(string name)

Establece el título de la prueba.

csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.SetTestName("Open labels page");
        // ...
    }
}

Description ​

  • AllureApi.SetDescription(string description)

Establece la descripción de la prueba.

Allure SpecFlow usa la descripción de un escenario del archivo Gherkin, si está presente. Alternativamente, usa la API en tiempo de ejecución para establecer la descripción dinámicamente.

gherkin
Feature: Labels

  Scenario: Create new label for authorized user
  This test attempts to create a label with specified title

    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.SetDescription("This test attempts to create a label with specified title");
        // ...
    }
}

Owner ​

  • AllureApi.SetOwner(string owner)

Establece el propietario de la prueba.

El formato para las etiquetas Gherkin se configura mediante la opción specflow.labels.owner.

gherkin
@allure.label.owner:JohnDoe
Feature: Labels

  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void ThenLabels()
    {
        AllureApi.SetOwner("John Doe");
        // ...
    }
}

Tag ​

  • AllureApi.AddTags(params string[] tags)

Establece los tags de la prueba.

Cualquier etiqueta Gherkin se agrega automáticamente a la lista de etiquetas de la prueba, a menos que coincida con una de las expresiones regulares en la configuración.

gherkin
@UI @Labels
Feature: Labels

  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddTags("UI", "Labels");
        // ...
    }
}

Severity ​

  • AllureApi.SetSeverity(SeverityLevel severity)

Establece la severidad de la prueba.

El formato para las etiquetas Gherkin se configura mediante la opción specflow.labels.severity.

gherkin
Feature: Labels

  @critical
  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.SetSeverity(SeverityLevel.critical);
        // ...
    }
}

Label ​

  • AllureApi.AddLabel(string name, string value)
  • AllureApi.AddLabel(Label label)
  • AllureApi.AddLabels(params Label[] labels)

Establece una etiqueta arbitraria para la prueba. Esta es la implementación subyacente para muchas de las otras APIs de Allure.

El formato para las etiquetas Gherkin se configura mediante la opción specflow.labels.label.

gherkin
@allure.label.layer:web
@allure.label.owner:eroshenkoam
@allure.label.page:/{org}/{repo}/labels
@allure.label.jira:AE-2
Feature: Labels

  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddLabel("layer", "web");
        AllureApi.AddLabel("owner", "eroshenkoam");
        AllureApi.AddLabel("page", "/{org}/{repo}/labels");
        AllureApi.AddLabel("jira", "AE-2");
        // ...
    }
}

Allure ID (Allure TestOps) ​

Establece el ID de la prueba.

El formato para las etiquetas Gherkin se configura mediante la opción specflow.labels.label. En la etiqueta, usa allure_id como el nombre de la etiqueta.

gherkin
Feature: Labels

  @allure.label.allure_id:123
  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"

Link ​

  • AllureApi.AddLink(string url)
  • AllureApi.AddLink(string name, string url)
  • AllureApi.AddLink(string name, string type, string url)
  • AllureApi.AddLinks(params Link[] links)
  • AllureApi.AddIssue(string url)
  • AllureApi.AddIssue(string name, string url)
  • AllureApi.AddTmsItem(string url)
  • AllureApi.AddTmsItem(string name, string url)

Agrega un enlace relacionado con la prueba.

Según el type (que puede ser cualquier cadena; por defecto es “link”), Allure intentará cargar un patrón de enlace correspondiente para procesar la URL, según lo definido en la sección allure.links del archivo de configuración. Si no se encuentra un patrón para el tipo dado, la URL se deja sin modificar.

El name se usará como el texto del enlace. Si se omite, se usará la URL no procesada.

Además, puedes usar la sección specflow.links del archivo de configuración para especificar formatos para agregar enlaces de tipo “link”, “issue” y “tms” mediante etiquetas Gherkin.

gherkin
@link:https://dev.example.com/
@issue:UI-123
@tms:TMS-456
Feature: Labels

  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddLink("Website", "https://dev.example.com/");
        AllureApi.AddIssue("UI-123");
        AllureApi.AddTmsItem("TMS-456");
        // ...
    }
}

Jerarquía basada en el comportamiento ​

  • AllureApi.AddEpic(string epic)
  • AllureApi.AddFeature(string feature)
  • AllureApi.AddStory(string story)

Asigna nombres de épicas, características o historias de usuario para una prueba, como parte de la jerarquía basada en comportamientos de Allure.

El formato para las etiquetas Gherkin se configura mediante las opciones specflow.grouping.behaviors.

gherkin
@allure.label.epic:WebInterface
Feature: Labels

  @allure.label.story:CreateLabels
  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddEpic("Web interface");
        AllureApi.AddFeature("Essential features");
        AllureApi.AddStory("Labels");
        // ...
    }
}

Jerarquía basada en la suite ​

  • AllureApi.AddParentSuite(string parentSuite)
  • AllureApi.AddSuite(string suite)
  • AllureApi.AddSubSuite(string subSuite)

Asigna los nombres de suite principal, suite o sub-suite para una prueba, como parte de la jerarquía basada en suites de Allure.

El formato para las etiquetas Gherkin se configura mediante las opciones specflow.grouping.suites.

gherkin
@allure.label.parentSuite:WebInterface
@allure.label.suite:EssentialFeatures
@allure.label.subSuite:Labels
Feature: Labels

  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddParentSuite("Web interface");
        AllureApi.AddSuite("Essential features");
        AllureApi.AddSubSuite("Labels");
        // ...
    }
}

Jerarquía basada en paquetes ​

Asigna los nombres de paquete, clase de prueba y método de prueba, como parte de la jerarquía basada en paquetes de Allure.

El formato para las etiquetas Gherkin se configura mediante las opciones specflow.grouping.packages.

gherkin
@allure.label.package:org.example
@allure.label.testClass:TestMyWebsite
@allure.label.testMethod:TestLabels()
Feature: Labels

  Scenario: Create new label for authorized user
    When I open labels page
    And I create label with title "hello"
    Then I should see label with title "hello"
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddLabel(Label.Package("org.example"));
        AllureApi.AddLabel(Label.TestClass("TestMyWebsite"));
        AllureApi.AddLabel(Label.TestMethod("TestLabels()"));
        // ...
    }
}

Pasos de prueba ​

  • AllureApi.Step(string name)
  • AllureApi.Step(string name, Action acti
  • T AllureApi.Step<T>(string name, Func<T> function)
  • async Task AllureApi.Step(string name, Func<Task> action)
  • async Task<T> AllureApi.Step<T>(string name, Func<Task<T>> function)

Define sub-pasos de prueba con el name dado.

Hay dos formas de definir un sub-paso.

  • Sub-pasos lambda

    Escribe un sub-paso de prueba en una función lambda y pásalo a Step(). Si la función lambda devuelve un valor, Step() lo devolverá sin modificaciones, y no afectará el informe.

    Usa AllureLifecycle.Instance.UpdateStep() para agregar parámetros personalizados al sub-paso actual, como se muestra en el ejemplo a continuación.

  • Sub-pasos no operativos (no-op)

    Si llamas a Step() con un nombre pero sin una función lambda, Allure agregará un sub-paso no operativo al informe. Esto permite un informe al estilo de registros dentro de un paso más grande. Un sub-paso no operativo termina inmediatamente después de iniciarse y no puede tener parámetros, archivos adjuntos ni sub-pasos propios.

En el ejemplo a continuación, se crea un nuevo sub-paso lambda en tiempo de ejecución para cada URL de una lista. La URL se agrega a la lista de parámetros del sub-paso. Dentro de cada uno de los sub-pasos, ocurre una secuencia de tres sub-pasos no operativos.

csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [Then("visit pages")]
    public void ThenVisitPages()
    {
        string[] urls =
        {
            "https://domain1.example.com/",
            "https://domain2.example.com/"
        };

        foreach (string url in urls)
        {
            AllureApi.Step($"Test {url}", () =>
            {
                AllureLifecycle.Instance.UpdateStep(stepResult =>
                {
                    stepResult.parameters.Add(
                        new Parameter { name = "Webpage URL", value = url }
                    );
                });

                AllureApi.Step("Opening web browser...");
                // ...

                AllureApi.Step($"Visiting {url}...");
                // ...

                AllureApi.Step("Closing web browser...");
                // ...
            });
        }
    }
}

Pruebas parametrizadas ​

Un informe de prueba de Allure puede reflejar varias formas en las que puedes pasar datos desde tu archivo Gherkin a tu código de implementación en C#, a saber:

  • esquemas de escenario,
  • tablas de datos verticales,
  • tablas de datos horizontales,
  • parámetros en tiempo de ejecución.

Esquemas de escenario ​

En Gherkin, un Escenario con esquema (o un Plantilla de escenario) implementa el patrón de pruebas parametrizadas. Un esquema de escenario debe contener una tabla Examples, de la cual SpecFlow carga conjuntos de parámetros, uno tras otro. Cada conjunto de parámetros se coloca en las declaraciones de los pasos según los marcadores de posición, generando así un nuevo escenario basado en la fila. Luego, SpecFlow ejecuta cada uno de ellos independientemente, como si fuera un Escenario separado. Los datos pueden ser capturados por una expresión regular y pasados como argumentos separados al código en C#.

Allure SpecFlow reconoce automáticamente este patrón. No se requiere configuración adicional.

El ejemplo a continuación muestra un archivo Gherkin y un archivo de implementación en C# de una prueba. En este ejemplo, los cuatro parámetros para el paso “Introduzco mis detalles...” se mostrarán en ambas instancias del escenario en el informe de la prueba.

gherkin
Feature: User management

  Scenario Outline: Registration
    When I go to the registration form
    And I enter my details: <login>, <password>, <name>, <birthday>
    Then the profile should be created

    Examples:
      | login   | password | name     | birthday   |
      | johndoe | qwerty   | John Doe | 1970-01-01 |
      | janedoe | 123456   | Jane Doe | 1111-11-11 |
csharp
using System;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I go to the registration form")]
    public void WhenIGoToTheRegistrationForm()
    {
        // ...
    }

    [When(@"I enter my details: (.*), (.*), (.*), (.*)")]
    public void WhenIEnterMyDetails(
        string login, string password, string name, DateTime birthday)
    {
        // ...
    }

    [Then("the profile should be created")]
    public void ThenTheProfileShouldBeCreated()
    {
        // ...
    }
}

Tablas de datos verticales ​

Si la declaración de tu paso en Gherkin contiene una tabla de datos con dos columnas, Allure SpecFlow puede mostrar su contenido como parámetros a nivel de paso. Dependiendo de la configuración, este comportamiento se puede aplicar a todas las tablas con dos columnas o solo a aquellas cuyos encabezados coincidan con una expresión regular específica.

La funcionalidad es opcional. Para habilitarla o deshabilitarla, o para modificar las expresiones regulares, edita la sección specflow.stepArguments del archivo de configuración.

Los datos de la tabla en sí se pasan al código C# sin modificaciones.

El siguiente ejemplo muestra un archivo de configuración, un archivo Gherkin y un archivo de implementación en C# de una prueba. En este ejemplo, los cuatro parámetros para el paso “Introduzco mis detalles” se mostrarán en el informe de la prueba.

json
{
  "specflow": {
    "stepArguments": {
      "convertToParameters": true,
      "paramNameRegex": "^Parameter$",
      "paramValueRegex": "^Value$"
    }
  }
}
gherkin
Feature: User management

  Scenario: Registration
    When I go to the registration form
    And I enter my details
      | Parameter | Value      |
      | login     | johndoe    |
      | password  | qwerty     |
      | name      | John Doe   |
      | birthday  | 1970-01-01 |
    Then the profile should be created
csharp
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I go to the registration form")]
    public void WhenIGoToTheRegistrationForm()
    {
        // ...
    }

    [When("I enter my details")]
    public void WhenIEnterMyDetails(Table table)
    {
        // ...
    }

    [Then("the profile should be created")]
    public void ThenTheProfileShouldBeCreated()
    {
        // ...
    }
}

Tablas de datos horizontales ​

Si la declaración de tu paso en Gherkin contiene una tabla de datos con una fila, Allure SpecFlow puede mostrar su contenido como parámetros a nivel de paso.

La funcionalidad es opcional. Para habilitarla o deshabilitarla, edita la sección specflow.stepArguments del archivo de configuración.

Los datos de la tabla en sí se pasan al código C# sin modificaciones.

WARNING

Debido a un detalle de implementación, el procesador de tablas de datos horizontales de Allure SpecFlow solo funciona correctamente si configuras todas las opciones del procesador de tablas de datos verticales. Asegúrate de proporcionar algunas expresiones regulares tanto para paramNameRegex como para paramValueRegex, incluso si no planeas usar tablas verticales en tu proyecto.

También ten en cuenta que actualmente, Allure SpecFlow no admite tablas horizontales con solo dos columnas. En su lugar, una tabla de este tipo se interpretará como una tabla de datos vertical.

El siguiente ejemplo muestra un archivo de configuración, un archivo Gherkin y un archivo de implementación en C# de una prueba. En este ejemplo, los cuatro parámetros para el paso “Introduzco mis detalles” se mostrarán en el informe de la prueba.

json
{
  "specflow": {
    "stepArguments": {
      "convertToParameters": true,
      "paramNameRegex": "^Parameter$",
      "paramValueRegex": "^Value$"
    }
  }
}
gherkin
Feature: User management

  Scenario: Registration
    When I go to the registration form
    And I enter my details
      | login   | password | name     | birthday   |
      | johndoe | qwerty   | John Doe | 1970-01-01 |
    Then the profile should be created
csharp
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I go to the registration form")]
    public void WhenIGoToTheRegistrationForm()
    {
        // ...
    }

    [When("I enter my details")]
    public void WhenIEnterMyDetails(Table table)
    {
        // ...
    }

    [Then("the profile should be created")]
    public void ThenTheProfileShouldBeCreated()
    {
        // ...
    }
}

Parámetros en tiempo de ejecución ​

  • AllureApi.AddTestParameter(string name, object? value)
  • AllureApi.AddTestParameter(string name, object? value, ParameterMode mode)
  • AllureApi.AddTestParameter(string name, object? value, bool excluded)
  • AllureApi.AddTestParameter(string name, object? value, ParameterMode mode, bool excluded)
  • AllureApi.AddTestParameter(Parameter parameter)

La función AddTestParameter() puede usarse en cualquier momento, incluso si el archivo Gherkin no especifica parámetros reales ni tablas de datos para ningún paso.

Si el argumento excluded se establece en verdadero, Allure no usará el parámetro al comparar el resultado de la prueba actual con el anterior en el historial. Este argumento solo lo utiliza Allure TestOps.

El argumento mode afecta cómo se mostrará el parámetro en el informe. Las opciones disponibles están definidas en la enumeración ParameterMode:

  • ParameterMode.Default (igual a no especificar ningún modo) — el parámetro y su valor se mostrarán en una tabla junto con otros parámetros.
  • ParameterMode.Masked — el parámetro se mostrará en la tabla, pero su valor estará oculto. Usa este modo para contraseñas, tokens y otros parámetros sensibles.
  • ParameterMode.Hidden — el parámetro y su valor no se mostrarán en el informe de la prueba. Sin embargo, es posible extraer el valor del directorio allure_results si lo publicas.

El siguiente ejemplo muestra un archivo Gherkin y un archivo de implementación en C# de una prueba. En lo que respecta a SpecFlow, el paso “Introduzco mis detalles” en el ejemplo no tiene ningún dato que se pase a él, sin embargo, Allure mostrará los cuatro parámetros a nivel de prueba.

gherkin
Feature: User management

  Scenario: Registration
    When I go to the registration form
    And I enter my details
    Then the profile should be created
csharp
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I go to the registration form")]
    public void WhenIGoToTheRegistrationForm()
    {
        // ...
    }

    [When("I enter my details")]
    public void WhenIEnterMyDetails()
    {
        AllureApi.AddTestParameter("login", "johndoe");
        AllureApi.AddTestParameter("password", "qwerty");
        AllureApi.AddTestParameter("name", "John Doe");
        AllureApi.AddTestParameter("birthday", "1970-01-01");
        // ...
    }

    [Then("the profile should be created")]
    public void ThenTheProfileShouldBeCreated()
    {
        // ...
    }
}

Archivos adjuntos ​

  • AllureApi.AddAttachment(string name, string type, string path)
  • AllureApi.AddAttachment(string name, string type, byte[] content, string fileExtension = "")
  • AllureApi.AddAttachment(string path, string? name = null)
  • AllureApi.AddScreenDiff(string expectedPng, string actualPng, string diffPng)

Agrega un archivo adjunto al resultado de la prueba bajo el nombre dado.

TIP

Puedes usar datos producidos por cualquier función, no necesariamente leídos desde un archivo real.

Para crear un archivo adjunto usando la API de tiempo de ejecución, llama a AddAttachment() en cualquier momento durante tu prueba. Pasa ya sea el content o el path desde el cual se leerán los datos.

Para asegurarte de que el navegador web del lector mostrará los archivos adjuntos correctamente, se recomienda especificar el tipo de cada archivo adjunto. Para hacerlo, pasa el tipo de medio del contenido como type y, opcionalmente, una extensión de nombre de archivo como fileExtension. El tipo de medio afecta cómo se mostrará el dato en el informe de la prueba, mientras que la extensión del archivo se agregará al nombre del archivo cuando el usuario quiera guardar el archivo.

csharp
using System.IO;
using System.Text;
using Allure.Net.Commons;
using TechTalk.SpecFlow;

[Binding]
public class Steps
{
    [When("I open labels page")]
    public void TestLabels()
    {
        AllureApi.AddAttachment(
            "data.txt",
            "text/plain",
            Encoding.UTF8.GetBytes("This is the file content.")
        );
        AllureApi.AddAttachment(
            "image1.png",
            "image/png",
            File.ReadAllBytes("/path/to/image1.png")
        );
        AllureApi.AddAttachment(
            "image2.png",
            "image/png",
            "/path/to/image2.png"
        );
    }
}

Allure SpecFlow también proporciona una función dedicada AddScreenDiff() para adjuntar comparaciones visuales.

Pager
Previous pageConfiguración
Next pageEmpezando
Powered by

Únete a nuestro boletín

Allure TestOps
  • Visión general
  • Por qué elegirnos
  • Nube
  • Autoalojado
  • Historias de éxito
Compañía
  • Documentación
  • Blog
  • Sobre nosotros
  • Contacto
  • Eventos
© 2025 Qameta Software Inc. All rights reserved.