2016-01-18 9 views
5

वर्तमान में हमारे प्रोजेक्ट में, हम कई सेवा और कुछ प्रोटोकॉल संबंधी एंडपॉइंट्स को एकीकृत करने के लिए स्प्रिंग एकीकरण का उपयोग कर रहे हैं।मल्टी स्प्रिंग बूट आवेदकों में परीक्षण समाप्त करने के लिए अंत

परियोजना एक बहु स्प्रिंग बूट अनुप्रयोग है, उत्पादन में एक से अधिक निष्पादन योग्य जार तैनात किए जाएंगे।

सवाल यह है:

  1. कैसे समाप्त परीक्षण है जो इन आवेदनों में से कुछ को पार, मैं एक मैन्युअल रूप से चलाने के लिए है चलाने की आवश्यकता को समाप्त करने को चलाने के लिए? किसी भी स्प्रिंग-बूट अनुप्रयोगों से पहले, मैं इस काम को पूरा करने के लिए मेवेन टॉमकैट 7 प्लगइन का उपयोग कर सकता हूं (युद्धों को एक एम्बेडेड टॉमकैट में तैनात करें और इसे प्री-इंटीग्रेशन-टेस्ट चरण में चलाएं), अब पहले सभी संबंधित एप्लिकेशन कैसे शुरू करें मैं अपना परीक्षण चलाता हूं। मान लीजिए कि अब मैं डॉकर/वाग्रेंट का उपयोग नहीं करता हूं।

    इसी प्रकार के सवाल stackoverflow पर पाया, End to end integration test for multiple spring boot applications under Maven

    कैसे स्वचालित रूप से end2end परीक्षण चलाने के लिए?

  2. एक स्प्रिंग एकता परीक्षण में, कुछ समय मैं जो इसे और अधिक की तरह बनाने के लिए एक http endpoint नकली करने के लिए है, तो मैं परीक्षण पैकेज में एक सरल Controller लिखा था इस उद्देश्य के संग्रह करने के लिए है, लेकिन मैं एक अलग बंदरगाह पर उसे चलाना चाहते हैं, एक बाहरी संसाधन। इस उद्देश्य के परीक्षण में एक ही समय में अलग-अलग बंदरगाहों पर अलग-अलग @SpringBootApplicaiton कक्षाएं कैसे चलाएं?

मैं नवीनतम मेवेन, जावा 8, स्प्रिंग बूट 1.3.1.RELEASE का उपयोग कर रहा हूं।

धन्यवाद।

+0

दूसरे प्रश्न के लिए, मैंने पाया कि वसंत 'MockRestServiceServer' प्रदान करता है, जो परीक्षण में इस उद्देश्य को संग्रहीत करने के लिए लक्ष्य दूरस्थ REST API का नकल कर सकता है। – Hantsy

उत्तर

0

दरअसल, वसंत बूट embedded सर्वलेट कंटेनर समर्थन के साथ आता है। उनमें से एक बिल्कुल टोमकैट है। org.springframework.boot:spring-boot-starter-web के लिए डिफ़ॉल्ट पर।

org.springframework.boot:spring-boot-starter-test और उसके @SpringApplicationConfiguration और @WebIntegrationTest आप अपनी आवश्यकताओं को प्राप्त कर सकते हैं के साथ

, यहां तक ​​कि यादृच्छिक port साथ।

कृपया अधिक जानकारी के लिए स्प्रिंग बूट Reference Manual का संदर्भ लें:

बंदरगाह के रूप में आप colon- @WebIntegrationTest के लिए पर्यावरण गुण जोड़ सकते हैं या कर सकते हैं बदलने के लिए बराबर होती है-अलग किए गए नाम और मान के जोड़े, उदा @WebIntegrationTest ("server.port: 9000")। इसके अतिरिक्त आप यादृच्छिक बंदरगाहों का उपयोग करके अपने एकीकरण परीक्षण चलाने के लिए server.port और management.port गुणों को 0 पर सेट कर सकते हैं।

इसी के साथ

अपने @SpringBootApplicaiton कि एम्बेडेड बिलाव और अपने परीक्षण के लिए तैनात किया जाएगा दौड़ा सेवाओं/नियंत्रकों के लिए उपयोग कर सकते हैं।

नोट: इससे कोई फर्क नहीं पड़ता कि आपके वसंत बूट एप्लिकेशन में वसंत एकीकरण सुविधाएं हैं या नहीं। व्यवहार वही है: @Value("${local.server.port}") के खिलाफ एम्बेडेड सर्वलेट कंटेनर और एकीकरण परीक्षण।

+2

मैं स्प्रिंग बूट अनुप्रयोगों में '@ इंटीग्रेशनटेस्ट' और '@ वेबइन्टीशनटेस्ट' के बारे में अच्छी तरह से जानता हूं। शायद मेरी अभिव्यक्ति ने आपको भ्रमित कर दिया, मैं कोई भी अंग्रेजी लड़का नहीं हूं।मुझे कई स्प्रिंग बूट अनुप्रयोगों (मेरे प्रश्न में केस 1) शुरू करने से पहले मुझे अपने स्टैंडअलोन एंड 2end परीक्षण को चलाने की ज़रूरत है। – Hantsy

संबंधित मुद्दे