मेरे पास एक बहु मॉड्यूल स्प्रिंग प्रोजेक्ट है जिसे मैंने मैवेन का उपयोग करके स्थापित किया है:कक्षाओं में निर्भरता के परीक्षण संसाधन नहीं?
my-root (pom)
- my-logic
- my-webapp (depending on my-logic)
- my-consoleapp (depending on my-logic)
मेरा टेस्ट क्लास AbstractTransactionalJUnit4SpringContextTests
से प्राप्त होता है और ApplicationContext
को स्थापित करने के लिए @ContextCofiguration
का उपयोग करता है।
उदा। स्प्रिंग कंट्रोलर के लिए टेस्ट क्लास:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:applicationContext-logic-test.xml",
"classpath:applicationContext-web-test.xml"})
public class ControllerTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private ApplicationContext applicationContext;
...
}
जैसा कि आप देख सकते हैं कि प्रति मॉड्यूल एक कॉन्फ़िगरेशन एक्सएमएल है। मेरे पास टेसिंग के लिए अलग-अलग कॉन्फ़िगरेशन हैं, प्रत्येक मॉड्यूल के परीक्षण/संसाधनों में रहते हैं (और अतिरिक्त प्रत्यय "-टेस्ट")। यह सभी काम करता है (कक्षा संकलन, रन और जुनीट परीक्षण सफल होते हैं) अगर मैं ग्रहण में जुनीट परीक्षण चलाता हूं।
अब मेरी समस्या के लिए: मेवेन का उपयोग कर परीक्षण चलाना काम नहीं करेगा! (उदा। my-root
पर "रन एज़"> "मेवेन इंस्टॉल" के साथ (मैं m2eclipse का उपयोग करता हूं))। विशेष रूप से, यह निम्नलिखित अपवाद फेंक देगा:
java.io.FileNotFoundException: क्लास पथ संसाधन [applicationContext-logic-test.xml] खोला नहीं जा सकता क्योंकि यह मौजूद नहीं है '
ऐसा लगता है कि मैवेन my-logic/src/test/resources
से फ़ाइलों को my-webapp
के यूनिट परीक्षण चलाते समय स्थापित क्लासपाथ में नहीं जोड़ता है।
मैं इसे कैसे ठीक कर सकता हूं?
इस उत्कृष्ट उत्तर के लिए बहुत बहुत धन्यवाद! मैंने इस समाधान का उपयोग किया और यह काम करता है। अब जब आपने यह समझाया कि यह मेरे लिए भी स्पष्ट है कि सभी (बाहरी) निर्भरताओं के परीक्षण संसाधन क्लासपाथ में शामिल नहीं हैं। उन्हें कैसे होना चाहिए लेकिन किसी भी तरह यह अच्छा होगा अगर मेरे अपने मॉड्यूल से संसाधन शामिल किए जाएंगे। भले ही मुझे नहीं पता कि यह वास्तव में कैसे काम करेगा, अब मैं इसके बारे में सोचता हूं;) – apropoz
@apropoz आपका स्वागत है। मेवेन के साथ विचार यह है कि मॉड्यूल स्वयं निहित हैं: आप अपने भाइयों के बिना एक मॉड्यूल की जांच कर सकते हैं और इसे बना सकते हैं। कुछ भी जो सापेक्ष पथ को शामिल करेगा, इसे तोड़ देगा, जो वांछनीय नहीं है। –