मुख्य कॉन्टेंट में जाएँ

डीबग करना

डिबगिंग काफी अधिक कठिन है जब कई प्रक्रियाएँ कई ब्राउज़रों में दर्जनों परीक्षण उत्पन्न करती हैं।

शुरुआत करने वालों के लिए, maxInstances से 1सेट करके और केवल उन विनिर्देशों और ब्राउज़रों को लक्षित करके समांतरता को सीमित करना बेहद सहायक होता है जिन्हें डीबग करने की आवश्यकता होती है।

wdio.confमें:

export const config = {
// ...
maxInstances: 1,
specs: [
'**/myspec.spec.js'
],
capabilities: [{
browserName: 'firefox'
}],
// ...
}

डिबग कमांड

कई मामलों में, आप अपने परीक्षण को रोकने और ब्राउज़र का निरीक्षण करने के लिए browser.debug() का उपयोग कर सकते हैं।

आपका कमांड लाइन इंटरफ़ेस भी आरईपीएल मोड में बदल जाएगा। यह मोड आपको पेज पर कमांड और एलिमेंट के साथ फिडल करने की अनुमति देता है। REPL मोड में, आप browser ऑब्जेक्ट—या $ और $$ फ़ंक्शंस—तक पहुँच सकते हैं जैसे आप अपने परीक्षणों में कर सकते हैं।

browser.debug()का उपयोग करते समय, आपको टेस्ट रनर को लंबे समय तक परीक्षण में विफल होने से रोकने के लिए टेस्ट रनर के टाइमआउट को बढ़ाने की आवश्यकता होगी। उदाहरण के लिए:

In wdio.conf:

jasmineOpts: {
defaultTimeoutInterval: (24 * 60 * 60 * 1000)
}

अन्य ढांचे का उपयोग करके इसे कैसे करें इस बारे में अधिक जानकारी के लिए टाइमआउट देखें।

डिबगिंग के बाद परीक्षण जारी रखने के लिए, शेल में ^C शॉर्टकट या .exit कमांड का उपयोग करें।

गतिशील विन्यास

ध्यान दें कि wdio.conf.js में जावास्क्रिप्ट हो सकता है। चूंकि आप संभवत: अपने टाइमआउट मान को 1 दिन में स्थायी रूप से बदलना नहीं चाहते हैं, इसलिए पर्यावरण चर का उपयोग करके कमांड लाइन से इन सेटिंग्स को बदलना अक्सर मददगार हो सकता है।

इस तकनीक का उपयोग करके, आप गतिशील रूप से कॉन्फ़िगरेशन को बदल सकते हैं:

const debug = process.env.DEBUG
const defaultCapabilities = ...
const defaultTimeoutInterval = ...
const defaultSpecs = ...

export const config = {
// ...
maxInstances: debug ? 1 : 100,
capabilities: debug ? [{ browserName: 'chrome' }] : defaultCapabilities,
execArgv: debug ? ['--inspect'] : [],
jasmineOpts: {
defaultTimeoutInterval: debug ? (24 * 60 * 60 * 1000) : defaultTimeoutInterval
}
// ...
}

फिर आप wdio कमांड को debug फ्लैग के साथ प्रीफिक्स कर सकते हैं:

$ DEBUG=true npx wdio wdio.conf.js --spec ./tests/e2e/myspec.test.js

...और DevTools के साथ अपनी कल्पना फ़ाइल को डीबग करें!

विजुअल स्टूडियो कोड (VSCode) के साथ डिबगिंग

If you want to debug your tests with breakpoints in latest VSCode, you have two options for starting the debugger of which option 1 is the easiest method:

  1. automatically attaching the debugger
  2. attaching the debugger using a configuration file

VSCode Toggle Auto Attach

You can automatically attach the debugger by following these steps in VSCode:

  • Press CMD + Shift + P (Linux and Macos) or CTRL + Shift + P (Windows)
  • Type "attach" into the input field
  • Select "Debug: Toggle Auto Attach"
  • Select "Only With Flag"

That's it! Now when you run your tests (remember you will need the --inspect flag set in your config as shown earlier) it will automatically start the debugger and stop on the first breakpoint that it reaches.

VSCode Configuration file

सभी या चयनित विशिष्ट फ़ाइल (फ़ाइलों) को चलाना संभव है। डीबग कॉन्फ़िगरेशन(ओं) को .vscode/launch.jsonमें जोड़ा जाना चाहिए, चयनित युक्ति को डीबग करने के लिए निम्न कॉन्फ़िगरेशन जोड़ें:

{
"name": "run select spec",
"type": "node",
"request": "launch",
"args": ["wdio.conf.js", "--spec", "${file}"],
"cwd": "${workspaceFolder}",
"autoAttachChildProcesses": true,
"program": "${workspaceRoot}/node_modules/@wdio/cli/bin/wdio.js",
"console": "integratedTerminal",
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js",
"${workspaceFolder}/lib/**/*.js",
"<node_internals>/**/*.js"
]
},

सभी विशिष्ट फ़ाइलों को चलाने के लिए "--spec", "${file}" "args"से हटा दें

उदाहरण: .vscode/launch.json

अतिरिक्त जानकारी: https://code.visualstudio.com/docs/nodejs/nodejs-debugging

एटम के साथ गतिशील उत्तर

यदि आप एटम हैकर हैं तो आप wdio-repl by @kurtharriger आज़मा सकते हैं जो एक गतिशील उत्तर है जो आपको एटम में एकल कोड लाइनों को निष्पादित करने की अनुमति देता है। डेमो देखने के लिए यह यू ट्यूब वीडियो देखें।

WebStorm / Intellij के साथ डिबगिंग

You can create a node.js debug configuration like this: Screenshot from 2021-05-29 17-33-33 Watch this YouTube Video for more information about how to make a configuration.

Welcome! How can I help?

WebdriverIO AI Copilot