WebdriverIO
npm install @tracera/webdriverio
Node.js ≥ 22.19 और WebdriverIO ≥ 9 चाहिए (देखें ऑटोटेस्ट एडेप्टर)। @tracera/webdriverio npm पर.
wdio.conf.ts में (Mocha):
export const config = {
reporters: ['spec', ['@tracera/webdriverio/reporter', {}]],
services: [['@tracera/webdriverio/service', {}]],
mochaOpts: {
require: ['@tracera/webdriverio/setup'],
},
};
Cucumber के लिए वही reporter और service रजिस्टर करें। Scenario टैग @tracera.id:‹id› पसंद करें (वैकल्पिक @tracera.name:…), या Before hook / step से tracera.testCase कॉल करें।
रीट्राई चालू हो तो केवल अंतिम WebdriverIO प्रयास रिपोर्ट होता है। अगर वह रीट्राई है (retry > 0), परिणाम Env टैब में WEBDRIVERIO_RETRY आता है (1 दूसरा रन है)।
एनवायरनमेंट वेरिएबल और रन मोड: ऑटोटेस्ट एडेप्टर।
testCaseId और autotestName बाँधना
mochaOpts.require के ज़रिए @tracera/webdriverio/setup लोड करें (Mocha globals पैच करता है) और tracera / annotations इम्पोर्ट करें। अगर autotestName न दें, तो एडेप्टर Mocha / Scenario का नाम लेता है।
Mocha — घोषणा पर (पसंदीदा):
import { annotations } from '@tracera/webdriverio';
it(
'login',
annotations(42, 'e2e/login', async () => {
await browser.url('https://example.com');
}),
);
जब Mocha दूसरे आर्ग्युमेंट के रूप में options ऑब्जेक्ट स्वीकार करता है, तो आप
it("login", annotations(42, "e2e/login"), async () => { … }) भी लिख सकते हैं।
Mocha — टेस्ट के अंदर (अगर annotations पहले से केस बाँध चुके हों तो वैकल्पिक):
import { tracera } from '@tracera/webdriverio';
it('login', async () => {
tracera.testCase(42, 'e2e/login');
await browser.url('https://example.com');
});
Cucumber — Scenario टैग (पसंदीदा):
@tracera.id:42
@tracera.name:e2e%2Flogin
Scenario: login
Given I open the login page
@tracera.name:… छोड़ दें तो Scenario शीर्षक autotestName बनता है। Scenario टैग के बिना बाँधने के लिए Before hook / step से tracera.testCase कॉल करें।
स्टेप्स
tracera.step इस्तेमाल करें। @tracera/webdriverio/setup के साथ स्टॉक Mocha beforeEach / afterEach इंस्ट्रूमेंटेड हैं — उनके अंदर स्टेप्स सेटअप / टीयरडाउन में जाते हैं।
import { tracera } from '@tracera/webdriverio';
beforeEach(async () => {
await tracera.step('open shop', async () => {
await browser.url('/shop');
});
});
it('checkout', async () => {
tracera.testCase(10, 'e2e/checkout');
await tracera.step('add to cart', async () => {
await $('[data-testid=add]').click();
});
});
afterEach(async () => {
await tracera.step('cleanup', async () => {
await browser.url('/cart/clear');
});
});
टिप्पणियाँ, त्रुटियाँ और अटैचमेंट
स्टेप के अंदर उस स्टेप के फ़ील्ड। स्टेप के बाहर रिजल्ट के फ़ील्ड। फ़ाइलों के लिए tracera.attachment इस्तेमाल करें (परिणाम पर अधिकतम 10 अटैचमेंट और हर चरण पर 10)।
import { tracera } from '@tracera/webdriverio';
it('login', async () => {
tracera.testCase(42, 'e2e/login');
tracera.comment('result-level note');
tracera.error('result-level error text');
await tracera.step('open login', async () => {
await browser.url('/login');
tracera.comment('landed on login');
tracera.attachment({
fileName: 'suite-log.txt',
mimeType: 'text/plain',
data: new TextEncoder().encode('finished login flow'),
});
});
});