मैं आपके परीक्षण कॉन्फ़िगरेशन को देखे बिना निश्चित रूप से नहीं कह सकता, लेकिन मुझे लगता है कि यह docker run
के साथ काम करता है और टेस्ट कंटेनर नहीं क्योंकि docker run
एक निश्चित पोर्ट (हमेशा 27017) को उजागर करता है लेकिन टेस्टकंटेनर पोर्ट को उजागर करेगा 27017
यादृच्छिक पोर्ट के रूप में (परीक्षण मशीनों पर पोर्ट संघर्ष से बचने के लिए)।
क्वार्कस परीक्षण के साथ टेस्टकंटेनरों का उपयोग करने के लिए, आपके परीक्षणों को इस प्रवाह का पालन करना चाहिए:
- कंटेनर शुरू करें। यह आवश्यक है क्योंकि MongoDB के लिए यादृच्छिक खुला पोर्ट केवल बाद . के बारे में जाना जा सकता है कंटेनर शुरू कर दिया गया है।
-
कंटेनर शुरू होने के बाद टेस्टकंटेनर्स से रैंडमाइज्ड पोर्ट प्राप्त करें, फिर कंटेनर पोर्ट पर निर्भर कोई भी टेस्ट कॉन्फ़िगरेशन गुण सेट करें। उदाहरण के लिए:
static GenericContainer mongodb = new GenericContainer<>("mongo:4.2").withExposedPorts(27017); static { mongodb.start(); System.setProperty("quarkus.mongodb.connection-string", "mongodb://" + mongodb.getContainerIpAddress() + ":" + mongodb.getFirstMappedPort()); }
- क्वार्कस शुरू होने दें। चूंकि क्वार्कस डायनेमिक कॉन्फ़िगरेशन का समर्थन नहीं करता है, क्वार्कस शुरू होने से पहले आपको मोंगोडीबी पोर्ट सेट करना होगा।