Cucumber JVM
dependencies {
testImplementation("dev.tracera:tracera-cucumber:<version>")
}
需要 JDK ≥ 17 和 Cucumber ≥ 7(见 自动化测试适配器)。tracera-cucumber on Maven Central。
环境变量与运行模式:自动化测试适配器。
Cucumber-JVM 没有标准重试 API — 没有 CUCUMBER_RETRY Env 键。
注册插件:
cucumber.plugin=dev.tracera.TraceraCucumberPlugin
或通过 @CucumberOptions(plugin = ["dev.tracera.TraceraCucumberPlugin"])。
绑定 testCaseId 与 autotestName
在 Scenario 上放标签(推荐):
@tracera.id:42
@tracera.name:e2e%2Flogin
Scenario: Login
Given the user opens login
可选的 @tracera.name: 需 URL 编码。若未指定名称标签,则 autotestName 取 Scenario 名称。
在步骤或钩子内:
import dev.tracera.Tracera
Tracera.testCase(42, "e2e/login")
Skip
使用 Cucumber 标准 skip / pending。Skip 原因会作为 comment 写入结果。
步骤
Gherkin 步骤映射到结果的 测试 区。用 Tracera.step("…") { … }、Tracera.suspendStep("…") { … }(协程),或在 glue 方法上使用 @Tracera.Step("…")(sync 与 suspend)进行嵌套。@Tracera.Step 标题为空或未写时,步骤标题使用方法名;标题中的 {0} / {name} 从方法参数填入。场景的 Before / After 钩子映射到 准备 / 清理。Feature / 套件钩子不上报。
import dev.tracera.Tracera
import io.cucumber.java.en.When
class CheckoutSteps {
@Tracera.Step("add {sku}")
fun addSku(sku: String) {
}
@When("the user checks out with {string}")
fun checkout(sku: String) {
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 的 Scenario 名称由 Cucumber 填入 <…>。在 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 |