मेरे पास एक स्प्रिंग-बूट एप्लिकेशन है जहां डिफ़ॉल्ट गुण application.properties
क्लासपाथ (src / main / resource / application.properties) में एक फ़ाइल में सेट किए गए हैं ।
मैं अपने JUnit परीक्षण में कुछ डिफ़ॉल्ट सेटिंग्स को एक test.properties
फ़ाइल (src / test / resource / test.properties) में घोषित गुणों के साथ ओवरराइड करना चाहूंगा
मैं सामान्य रूप से अपने Junit टेस्ट्स के लिए एक समर्पित विन्यास वर्ग है, जैसे
package foo.bar.test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
}
मैं पहली बार सोचा कि का उपयोग कर @PropertySource("classpath:test.properties")
TestConfig कक्षा में चाल करना होगा, लेकिन इन गुणों application.properties सेटिंग अधिलेखित नहीं होगा (देखें वसंत-बूट संदर्भ डॉक्टर - 23. externalized विन्यास )।
फिर मैंने -Dspring.config.location=classpath:test.properties
परीक्षण का उपयोग करते समय उपयोग करने की कोशिश की । यह सफल था - लेकिन मैं इस प्रणाली की संपत्ति को प्रत्येक परीक्षण निष्पादन के लिए सेट नहीं करना चाहता। इस प्रकार मैंने इसे कोड में डाल दिया
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
static {
System.setProperty("spring.config.location", "classpath:test.properties");
}
}
जो दुर्भाग्य से फिर से सफल नहीं था।
application.properties
JUnit परीक्षणों में सेटिंग्स को ओवरराइड करने के तरीके पर एक सरल समाधान test.properties
होना चाहिए कि मैंने इसे अनदेखा किया होगा।