আমার কাছে একটি স্প্রিং-বুট অ্যাপ্লিকেশন রয়েছে যেখানে application.properties
ক্লাসপথের একটি ফাইলে ডিফল্ট বৈশিষ্ট্য সেট করা হয় (src / প্রধান / সংস্থান / অ্যাপ্লিকেশন। প্রপার্টি )।
আমি আমার JUnit পরীক্ষায় কিছু test.properties
ফাইল ডিফল্ট (src / টেস্ট / রিসোর্স / টেস্ট.প্রোপার্টি) ঘোষিত সম্পত্তি সহ কিছু ডিফল্ট সেটিংস ওভাররাইড করতে চাই
আমার নিয়মিত আমার জুনিট টেস্টগুলির জন্য একটি ডেডিকেটেড কনফিগার ক্লাস থাকে
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 বাহ্যিক কনফিগারেশন )।
তারপরে -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
অবশ্যই আমাকে অবশ্যই উপেক্ষা করতে হবে।