बस इतने ही लोग जिन्होंने अपने ऐप को कॉन्फ़िगर किया है जैसे मेरा फायदा है कि मुझे क्या फायदा हुआ ...
मेरे लिए काम किया क्योंकि मैं एक है ऊपर से कोई भी समाधान ./config
: सिर्फ 2 फाइलों के साथ अपने प्रोजेक्ट आधार के तहत निर्देशिका
application.properties
application-dev.properties
में application.properties
मेरे पास है:
spring.profiles.active = dev # set my default profile to 'dev'
में application-dev.properties
मेरे पास है:
server_host = localhost
server_port = 8080
ऐसा तब होता है जब मैं सीएलआई से अपना मोटा जार चलाता हूं, *.properties
फाइलों को ./config
डायर से पढ़ा जाएगा और सब अच्छा है।
खैर, यह पता चला है कि ये गुण फाइलें मेरे स्पॉक स्पेक्स में webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
सेटिंग को पूरी तरह से ओवरराइड करती हैं @SpringBootTest
। कोई फर्क नहीं पड़ता कि मैंने क्या कोशिश की, यहां तक कि स्प्रिंग के webEnvironment
सेट RANDOM_PORT
पर भी पोर्ट 8080 पर एम्बेडेड टॉमकैट कंटेनर (या जो भी मूल्य मैं अपनी ./config/*.properties
फाइलों में सेट करता हूं ) को स्टार्टअप करूंगा ।
केवल जिस तरह से मैं दूर करने के लिए यह एक स्पष्ट जोड़कर था सक्षम था properties = "server_port=0"
करने के लिए @SpringBootTest
मेरी स्पॉक एकीकरण चश्मा में एनोटेशन:
@SpringBootTest (webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = "server_port=0")
फिर, और उसके बाद ही स्प्रिंग ने आखिरकार टॉमकैट को एक यादृच्छिक बंदरगाह पर स्पिन करना शुरू कर दिया। IMHO यह स्प्रिंग टेस्टिंग फ्रेमवर्क बग है, लेकिन मुझे यकीन है कि इस पर उनकी अपनी राय होगी।
आशा है कि यह किसी की मदद की।