2012-03-09 10 views
13

से वसंत JUnit टेस्ट चल रहा है वहाँ (विशेष रूप से मैं SpringJUnit4ClassRunner उपयोग कर रहा हूँ) src/main/resources के साथ-साथ src/test/resources से संसाधनों का उपयोग करने ग्रहण में JUnit परीक्षण होने का कोई तरीका है?जोड़ना/क्लासपाथ को src/मुख्य/संसाधन जब ग्रहण

Maven के अचूक प्लगइन इस करता है, लेकिन ग्रहण से एक विशेष इकाई परीक्षण चल रहा है नहीं करता है।

मैं src/main/resources/spring-config/ में स्प्रिंग config का भार मिल गया है और मैं 'ओवरराइड' दो विशिष्ट फ़ाइलों करना चाहते हैं। मैंने इन परीक्षण-विशिष्ट ओवरराइड को src/test/resources/spring-config/ में रखा है, और जब मैवेन ईवर्सिंग के माध्यम से यूनिट परीक्षण चलाते हैं। जब मैं एक्लिप्स से जुनीट परीक्षण चलाता हूं, केवल परीक्षण फाइलें उपलब्ध हैं, और आश्चर्यजनक रूप से मेरा संदर्भ लोड करने में विफल रहता है।

अद्यतन

होने पर दिखाई देने स्प्रिंग वर्गों है कि परीक्षण संदर्भ कॉन्फ़िगर src/main/resources/ से संसाधनों नहीं मिल सकता है जब एक वाइल्ड कार्ड का उपयोग, लेकिन अगर मैं उन्हें स्पष्ट रूप से निर्दिष्ट उन्हें मिल जाएगा।

से src/main/resources/

@ContextConfiguration(locations = {"classpath:/spring-config/*.xml"}) 

चीजें नहीं मिल रहा है से src/main/resources/

@ContextConfiguration(locations = {"classpath:/spring-config/*.xml", 
            "classpath:/spring-config/app-aws.xml"}) 
+1

बस सवाल का जवाब के लिए इच्छुक किसी के लिए बाहर बिंदु, "वहाँ ग्रहण/Maven में JUnit परीक्षण हो रही' src/मुख्य/resources' के साथ-साथ 'src/परीक्षण/resources' से संसाधनों का उपयोग करने का एक तरीका है के लिए? " (और वसंत भाग में इतनी दिलचस्पी नहीं है), यह जवाब देखें [http://stackoverflow.com/a/17452754/983430) मैवेन में इसे कैसे करें, या बस ग्रहण में अपने रन कॉन्फ़िगरेशन में एक फ़ोल्डर जोड़ें । –

उत्तर

7

निर्दिष्ट फ़ाइलों को ढूंढने में यह वास्तव में वसंत की एक सीमा है, बल्कि JUnit से करता है। विवरण के लिए http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/resources.html#resources-wildcards-in-path-other-stuff देखें।

समाधान रूट स्प्रिंग कॉन्फ़िगरेशन फ़ाइलों को रूट पैकेज की बजाय पैकेज में रखना है।

+0

यदि मैं 'क्लासपाथ *:' का उपयोग करता हूं तो यह फाइलों के दोनों सेटों का उपयोग करता है, लेकिन 'src/test/resource' संस्करण को प्राथमिकता देने के बजाए दोनों का मूल्यांकन करता है। क्या इसके आसपास कोई रास्ता है? –

+0

@ डीजय आपको सचमुच अपनी सामग्री को src/test में {something} -test या इसी तरह के रूप में नामित करना चाहिए, और जब आवश्यक हो तो स्पष्ट रूप से देखें - अन्यथा यह स्पष्ट नहीं होगा कि आप मूल फ़ाइल या परीक्षण संस्करण – eis

+0

@eis का जिक्र कर रहे हैं आपके विचारों के लिए धन्यवाद। स्रोत/परीक्षण/संसाधनों में आईएमओ संसाधनों को परीक्षण संसाधनों के रूप में और पहचान की आवश्यकता नहीं है। इसके अतिरिक्त, पूरे कॉन्फ़िगरेशन संदर्भ को अनुकरण करने में सक्षम नहीं होने के कारण जटिलता को जोड़ता है, तब तक मैं वाइल्डकार्ड का उपयोग करते समय लोड होने वाली फ़ाइल के परीक्षण और गैर परीक्षण संस्करणों के साथ समाप्त होता हूं। –

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