gotest
go get github.com/tracera-dev/tracera-go/gotest
Go ≥ 1.25 आवश्यक (ऑटोटेस्ट एडेप्टर देखें)। gotest pkg.go.dev पर।
एनवायरनमेंट वेरिएबल और रन मोड: ऑटोटेस्ट एडेप्टर।
रिपोर्टिंग को TestMain में एक बार जोड़ें:
package checkout_test
import (
"os"
"testing"
"github.com/tracera-dev/tracera-go/gotest"
)
func TestMain(m *testing.M) {
os.Exit(gotest.Run(m))
}
testCaseId और autotestName बाँधना
मानक testing और imperative बाइंड उपयोग करें:
func TestCheckout(t *testing.T) {
gotest.TestCase(t, 42)
// gotest.TestCase(t, 42, "e2e/checkout")
}
पैरेलल टेस्ट में gotest.TestCase से पहले t.Parallel() कॉल करें।
Skip
gotest.Skip / gotest.Skipf उपयोग करें — कारण परिणाम में comment के रूप में जुड़ता है (अकेला t.Skip ऐसा नहीं करता):
func TestCheckout(t *testing.T) {
gotest.TestCase(t, 42)
gotest.Skip(t, "needs a seeded account")
}
स्टेप्स
tracera.Step("…", func() { … }) उपयोग करें। Go में मेथड स्टेप डेकोरेटर नहीं है। tracera.Setup / tracera.Teardown के अंदर के स्टेप परिणाम के सेटअप / टीयरडाउन में जाते हैं; बाकी स्टेप टेस्ट में।
tracera.Step के अंदर panic परिणाम कार्ड पर एरर संदेश जोड़ता है। यदि टेस्ट t.Fatal / t.Error से फेल हो, तो परिणाम फिर भी Failed होता है, पर फेल टेक्स्ट केवल go test आउटपुट में रहता है।
import "github.com/tracera-dev/tracera-go"
func TestCheckout(t *testing.T) {
gotest.TestCase(t, 10)
tracera.Setup("open shop", func() {})
tracera.Step("add item", func() {
tracera.Step("nested leaf", func() {})
})
tracera.Teardown("close shop", func() {})
}
कमेंट, एरर और अटैचमेंट
सीमाएँ और अनुमत MIME प्रकार: ऑटोटेस्ट एडेप्टर।
tracera.Comment, tracera.Error और अटैचमेंट खुले स्टेप में जुड़ते हैं, और कोई स्टेप खुला न हो तो परिणाम में। tracera.AttachmentFile फ़ाइल पथ लेता है; tracera.AttachmentBytes नाम, बाइट्स और MIME प्रकार लेता है। अटैचमेंट परिणाम रिपोर्ट होने पर अपलोड होते हैं।
import tracera "github.com/tracera-dev/tracera-go"
tracera.Comment("result-level note")
tracera.Error("result-level error")
tracera.AttachmentFile("testdata/screenshot.png")
tracera.Step("open login", func() {
tracera.Comment("step note")
tracera.AttachmentBytes("body.json", []byte(`{"ok":true}`), "application/json")
})
अगर आप नई गोरुटीन में Tracera API कॉल करते हैं (स्टेप्स, कमेंट, एरर, अटैचमेंट), तो पहले टेस्ट गोरुटीन पर कॉन्टेक्स्ट सेव करें और वर्कर को tracera.RunWithContext से चलाएँ — नहीं तो ये कॉल रिपोर्ट में नहीं जाएँगे:
ctx := tracera.GetContext()
go tracera.RunWithContext(ctx, func() {
tracera.Step("worker", func() { /* ... */ })
})
पैरामीटराइज़्ड टेस्ट
t.Run की पंक्तियाँ उपयोग करें। हर पंक्ति के लिए स्थिर नाम चाहिए तो TestCase में नाम दें:
func TestMatrix(t *testing.T) {
for _, row := range []struct{ login string }{{"alice"}, {"bob"}} {
t.Run(row.login, func(t *testing.T) {
gotest.TestCase(t, 7, "login as "+row.login)
})
}
}