Reqnroll

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

需要 .NET ≥ 8 和 Reqnroll ≥ 2(见 自动化测试适配器)。Tracera.Reqnroll on NuGet。

环境变量与运行模式:自动化测试适配器。

引用该包后插件会自动加载 — 无需额外配置特性。

绑定 testCaseId 与 autotestName

优先在 Scenario 上使用标签:

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

若未指定自定义名称,则 autotestName 取 Scenario 标题。

在 step definition 内部:

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

Skip

使用单元测试提供程序自带的 skip(NUnit Assert.Ignore、xUnit Assert.Skip 等)。Skip 原因会作为 comment 添加到结果。

步骤

Gherkin 步骤映射到结果的 测试 区。嵌套可用 Tracera.Step("…", () => { … })、Tracera.Step("…", async () => { … })(会等待 async 回调完成),或在方法上加 [Tracera.Step("…")](同步与 async Task)。若 [Tracera.Step] 标题为空或省略,步骤标题为方法名;标题中的 {0} / {name} 由方法参数填充。Scenario 的 Before / After 钩子映射到 Setup / Teardown。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 已填充 <…> 的 Scenario 名称。在 Outline 或 Scenario 上放固定的 @tracera.id:;若 id 按示例变化,则调用 Tracera.TestCase。

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