डॉकर के साथ जावास्क्रिप्ट एकीकरण परीक्षण: पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

डॉकर के साथ जावास्क्रिप्ट एकीकरण परीक्षण: A से Z तक

\n\n

आधुनिक वेब डेवलपमेंट में, कोड की गुणवत्ता केवल एक मीट्रिक नहीं है, बल्कि उत्पाद की स्थिरता की गारंटी है। एकीकरण परीक्षण (Integration Testing) परीक्षण पिरामिड में एक महत्वपूर्ण स्थान रखता है, जो विभिन्न मॉड्यूल, डेटाबेस, बाहरी API और सेवाओं के बीच इंटरैक्शन की जांच करने की अनुमति देता है। हालांकि, ऐसे परीक्षणों के लिए पृथक और पुनरुत्पादनीय वातावरण स्थापित करना अक्सर सिरदर्द बन जाता है। यहाँ डॉकर मदद के लिए आता है - कंटेनरीकरण उपकरण जो स्वच्छ, दोहराने योग्य परीक्षण वातावरण बनाने के लिए आदर्श है।

\n\n

इस लेख में, हम चर्चा करेंगे कि डॉकर का उपयोग करके जावास्क्रिप्ट (Node.js) अनुप्रयोगों के लिए एकीकरण परीक्षण कैसे व्यवस्थित करें। आप सीखेंगे कि परीक्षण डेटाबेस कैसे सेट करें, कंटेनरों में निर्भरताएँ कैसे चलाएँ, और प्रभावी परीक्षण कैसे लिखें जिन्हें आसानी से CI/CD पाइपलाइन में एकीकृत किया जा सके।

\n\n

1. डॉकर एकीकरण परीक्षणों के लिए आदर्श क्यों है?

\n\n

एकीकरण परीक्षण के पारंपरिक दृष्टिकोण में अक्सर प्रत्येक डेवलपर मशीन या CI सर्वर पर मैन्युअल रूप से वातावरण सेट करने की आवश्यकता होती है। इससे "मेरी मशीन पर काम करता है" की समस्या उत्पन्न होती है। डॉकर इस समस्या को मौलिक रूप से हल करता है:

\n\n
    \n
  • पृथक्करण: प्रत्येक परीक्षण एक साफ कंटेनर में चलता है, जो पिछले रनों के दुष्प्रभावों के प्रभाव को समाप्त करता है।
  • \n
  • पुनरुत्पादनीयता: एक ही वातावरण (Node.js संस्करण, डेटाबेस, सिस्टम लाइब्रेरीज़) हर जगह काम करने की गारंटी है: डेवलपर की स्थानीय मशीन पर, बिल्ड सर्वर पर और प्रोडक्शन में।
  • \n
  • निर्भरता प्रबंधन: आप एक कमांड docker-compose up -d से जटिल बुनियादी ढाँचे (Redis, PostgreSQL, RabbitMQ) आसानी से चला सकते हैं।
  • \n
  • गति: वर्चुअल मशीनों के विपरीत, कंटेनर सेकंड में शुरू होते हैं। डॉकर लेयर्स को कैश करता है, जिससे बार-बार बिल्ड तेज होते हैं।
  • \n
\n\n

Node.js के संदर्भ में, डॉकर आपको विकास वातावरण छोड़े बिना बाहरी सेवाओं को "मॉक" करने की अनुमति देता है। प्रोडक्शन API को हिट करने के बजाय, आप उदाहरण के लिए, json-server या testcontainers के साथ एक परीक्षण कंटेनर चलाते हैं।

\n\n

2. परीक्षण के लिए Node.js प्रोजेक्ट सेटअप

\n\n

मान लीजिए कि हमारे पास एक सरल Express एप्लिकेशन है जो PostgreSQL में उपयोगकर्ताओं को सहेजता है। हमारा कार्य POST /users एंडपॉइंट का परीक्षण करना है।

\n\n

प्रोजेक्ट संरचना:

\n
\nproject/\n├── src/\n│   ├── app.js\n│   ├── db.js\n│   └── routes/\n│       └── users.js\n├── test/\n│   └── integration/\n│       └── users.test.js\n├── docker-compose.test.yml\n├── Dockerfile\n├── package.json\n└── .env.test\n
\n\n

परीक्षणों के लिए हम लोकप्रिय स्टैक का उपयोग करेंगे: Mocha (फ्रेमवर्क) + Chai (अभिकथन लाइब्रेरी) + Supertest (HTTP परीक्षण)।

\n\n

निर्भरताएँ स्थापित करें:

\n
npm install --save-dev mocha chai supertest
\n\n

फ़ाइल package.json में परीक्षण चलाने के लिए स्क्रिप्ट होनी चाहिए:

\n
{\n  "scripts": {\n    "test:integration": "mocha test/integration/**/*.test.js --timeout 10000"\n  }\n}
\n\n

3. परीक्षणों के लिए डॉकर वातावरण बनाना

\n\n

मुख्य फ़ाइल docker-compose.test.yml है। यह परीक्षणों के लिए आवश्यक सेवाओं का वर्णन करती है।

\n\n
version: '3.8'\n\nservices:\n  app-test:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    environment:\n      - NODE_ENV=test\n      - DB_HOST=postgres-test\n      - DB_PORT=5432\n      - DB_USER=test_user\n      - DB_PASSWORD=test_pass\n      - DB_NAME=test_db\n    depends_on:\n      postgres-test:\n        condition: service_healthy\n    command: ["npm", "run", "test:integration"]\n\n  postgres-test:\n    image: postgres:15-alpine\n    environment:\n      POSTGRES_USER: test_user\n      POSTGRES_PASSWORD: test_                

ब्लॉग

पुस्तक अनुशंसाएँ