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 |