Docker के साथ Swift एकीकरण परीक्षण: पूर्ण गाइड
एकीकरण परीक्षण गुणवत्तापूर्ण Swift अनुप्रयोगों के विकास में एक महत्वपूर्ण चरण है। यह जाँचता है कि विभिन्न मॉड्यूल, सेवाएँ और बाहरी निर्भरताएँ एक-दूसरे के साथ कैसे इंटरैक्ट करती हैं। Docker इस प्रक्रिया को सरल बनाता है, एक पृथक वातावरण प्रदान करके जिसे किसी भी मशीन पर आसानी से दोहराया जा सकता है। इस लेख में, हम देखेंगे कि Docker का उपयोग करके Swift प्रोजेक्ट का एकीकरण परीक्षण कैसे सेटअप करें, जिसमें iOS और macOS के उदाहरण शामिल हैं।
Swift एकीकरण परीक्षण के लिए Docker का उपयोग क्यों करें?
Swift अनुप्रयोगों का पारंपरिक परीक्षण अक्सर वातावरण संबंधी समस्याओं से ग्रस्त होता है: डेटाबेस, सर्वर, लाइब्रेरी के विभिन्न संस्करण। Docker इन समस्याओं को हल करता है:
- पृथक्करण: प्रत्येक परीक्षण एक साफ कंटेनर में चलता है, जो अन्य प्रक्रियाओं के प्रभाव को समाप्त करता है।
- पुनरुत्पादन क्षमता: स्थानीय रूप से, CI सर्वर पर और अन्य डेवलपर्स के पास समान वातावरण।
- त्वरित तैनाती: कंटेनर सेकंड में शुरू होते हैं, मिनटों में नहीं।
- स्केलिंग: निर्भरताओं के विभिन्न संस्करणों के साथ समानांतर परीक्षण आसानी से चलाएँ।
Docker नेटवर्क इंटरैक्शन, डेटाबेस (जैसे PostgreSQL या Redis) और माइक्रोसर्विस आर्किटेक्चर के परीक्षण के लिए विशेष रूप से उपयोगी है।
Swift के लिए Docker वातावरण सेटअप करना
शुरू करने के लिए, एक सरल Swift प्रोजेक्ट बनाएँ और Docker सेटअप करें। मान लें कि हमारे पास एक एप्लिकेशन है जो PostgreSQL डेटाबेस के साथ काम करता है।
1. Swift प्रोजेक्ट बनाना
Swift Package Manager का उपयोग करके एक नया प्रोजेक्ट बनाएँ:
mkdir SwiftIntegrationTestcd SwiftIntegrationTestswift package init --type executablePostgreSQL के साथ काम करने के लिए एक निर्भरता जोड़ें। Package.swift खोलें और जोड़ें:
// swift-tools-version:5.9import PackageDescription
let package = Package( name: "SwiftIntegrationTest", dependencies: [ .package(url: "https://github.com/vapor/postgres-nio.git", from: "1.18.0") ], targets: [ .executableTarget( name: "SwiftIntegrationTest", dependencies: [ .product(name: "PostgresNIO", package: "postgres-nio") ]), .testTarget( name: "SwiftIntegrationTestTests", dependencies: ["SwiftIntegrationTest"]) ])2. Swift के लिए Dockerfile
प्रोजेक्ट रूट में Dockerfile फ़ाइल बनाएँ:
FROM swift:5.9-focal
WORKDIR /app
# प्रोजेक्ट फ़ाइलें कॉपी करेंCOPY Package.swift .COPY Sources/ ./Sources/COPY Tests/ ./Tests/
# प्रोजेक्ट बनाएँ (तेज़ी के लिए परीक्षणों के बिना)RUN swift build -c release
# परीक्षण चलाने का आदेशCMD ["swift", "test", "--enable-test-discovery"]3. निर्भरताओं के लिए Docker Compose
PostgreSQL के साथ परीक्षण चलाने के लिए docker-compose.yml बनाएँ:
version: '3.8'
services: postgres: image: postgres:16 environment: POSTGRES_DB: testdb POSTGRES_USER: testuser POSTGRES_PASSWORD: testpass ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U testuser -d testdb"] interval: 5s timeout: 5s retries: 5
swift-tests: build: . depends_on: postgres: condition: service_healthy environment: DATABASE_HOST: postgres DATABASE_PORT: 5432 DATABASE_NAME: testdb DATABASE_USER: testuser DATABASE_PASSWORD: testpassSwift में एकीकरण परीक्षण लिखना
अब एक परीक्षण लिखें जो डेटाबेस कनेक्शन और क्वेरी निष्पादन की जाँच करता है।
1. डेटाबेस के साथ काम करने के लिए क्लास
फ़ाइल Sources/SwiftIntegrationTest/DatabaseService.swift बनाएँ:
ब्लॉग
पुस्तक अनुशंसाएँ
यह भी पढ़ें