Cucumber JVM
dependencies {
testImplementation("dev.tracera:tracera-cucumber:<version>")
}
JDK ≥ 17 और Cucumber ≥ 7 आवश्यक (ऑटोटेस्ट एडेप्टर देखें)। tracera-cucumber 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-encoded होता है। यदि नाम टैग न लिखा हो, तो autotestName Scenario नाम का मान लेता है।
स्टेप या हुक के अंदर:
import dev.tracera.Tracera
Tracera.testCase(42, "e2e/login")
Skip
मानक Cucumber skip / pending इस्तेमाल करें। Skip reason परिणाम में comment के रूप में जुड़ता है।
स्टेप्स
Gherkin स्टेप्स परिणाम की टेस्ट सेक्शन में जाते हैं। नेस्ट करने के लिए Tracera.step("…") { … }, कोरूटीन के लिए Tracera.suspendStep("…") { … }, या glue मेथड पर @Tracera.Step("…") (sync और suspend)। @Tracera.Step में शीर्षक खाली या छोड़ा हो तो स्टेप का शीर्षक मेथड नाम होता है; शीर्षक में {0} / {name} मेथड आर्गुमेंट से भरते हैं। Scenario के 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 |