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   |