Reqnroll

<PackageReference Include="Tracera.Reqnroll" Version="*" />

Требуются .NET ≥ 8 и Reqnroll ≥ 2 (см. Адаптеры автотестов). Tracera.Reqnroll на NuGet.

Переменные окружения и режим прогона: Адаптеры автотестов.

Плагин подключается автоматически при ссылке на пакет — отдельный атрибут конфигурации не нужен.

Привязка testCaseId и autotestName

Предпочтительны теги на Scenario:

@tracera.id:42
Scenario: Login
  Given the user opens login

Если имя не указано, то autotestName принимает значение заголовка сценария.

Внутри step definition:

[When("the user submits valid credentials")]
public void Submit()
{
    Tracera.TestCase(42, "e2e/login");
}

Skip

Используйте стандартный skip провайдера unit-тестов (NUnit Assert.Ignore, xUnit Assert.Skip, …). Причина skip добавляется в результат как comment.

Шаги

Шаги Gherkin попадают в секцию результата Тест. Вложенность — через Tracera.Step("…", () => { … }), Tracera.Step("…", async () => { … }) (адаптер ждёт завершения async-лямбды), или [Tracera.Step("…")] на методе (sync и async Task). Если у [Tracera.Step] заголовок пустой или не указан, в отчёт идёт имя метода; плейсхолдеры {0} / {name} в заголовке заполняются из аргументов метода. Хуки Scenario Before / After → Предусловие / Постусловие. Хуки уровня Feature в отчёт не попадают.

[Tracera.Step("add {sku}")]
public void AddSku(string sku) { }

[When("the user checks out with {string}")]
public void Checkout(string sku)
{
    AddSku(sku);
    Tracera.Step("pay", () => { });
}

Комментарии, ошибки и вложения

Комментарии, ошибки и вложения: Адаптеры автотестов.

Tracera.Comment("result-level note");
Tracera.Error("result-level error text");
Tracera.Step("open login", () =>
{
    Tracera.Comment("landed on login");
});

Параметризованные тесты

Для каждой строки Examples используется имя сценария после подстановки <…> из Reqnroll. Укажите фиксированный @tracera.id: на Scenario Outline или Scenario, или вызовите Tracera.TestCase, если id разный по строкам.

@tracera.id:42
Scenario Outline: Login as <login>
  Given the user signs in as "<login>"
  Examples:
    | login |
    | ok    |
    | sso   |