@ सीटेव सी और @ एशोसबॉर्न 1 द्वारा प्रस्तावित विकल्पों में अंतर और बाधाएं हैं। मुझे निर्दिष्ट करना चाहिए, मेरा मानना है।
हम कब उपयोग कर सकते हैं File resourcesDirectory = new File("src/test/resources");
:?
- 1 जब परीक्षण केवल मावेन के माध्यम से नहीं बल्कि आईडीई के माध्यम से चलाए जाने वाले हैं।
- 2.1 जब परीक्षण मावेन या के माध्यम से चलाए जा रहे हैं
- 2.2 आईडीई के माध्यम से और केवल एक परियोजना आईडीई में आयात की जाती है। (मैं "आयातित" शब्द का उपयोग करता हूं, क्योंकि यह IntelliJ IDEA में उपयोग किया जाता है। मुझे लगता है कि ग्रहण के उपयोगकर्ता भी अपने मावेन प्रोजेक्ट को आयात करते हैं)। यह तब काम करेगा, जब आप IDE के माध्यम से परीक्षण चलाते हैं, जो आपकी परियोजना के समान है।
- 3.1 जब परीक्षण मावेन या के माध्यम से चलाए जा रहे हैं
- 3.2 आईडीई के माध्यम से, और एक से अधिक परियोजनाएं आईडीई में आयात की जाती हैं (जब आप एक छात्र नहीं होते हैं, तो आप आमतौर पर कई परियोजनाओं को आयात करते हैं), और आईडीई के माध्यम से परीक्षण चलाने से पहले, आप मैन्युअल रूप से अपने परीक्षणों के लिए कार्य निर्देशिका को कॉन्फ़िगर करते हैं। उस कार्यशील निर्देशिका को आपके आयातित प्रोजेक्ट का उल्लेख करना चाहिए जिसमें परीक्षण शामिल हैं। डिफ़ॉल्ट रूप से, आईडीई में आयातित सभी परियोजनाओं की कार्यशील निर्देशिका केवल एक है। संभवतः यह
IntelliJ IDEA
केवल एक प्रतिबंध है , लेकिन मुझे लगता है कि सभी आईडीई इस तरह से काम करते हैं। और यह कॉन्फ़िगरेशन जो मैन्युअल रूप से किया जाना चाहिए, बिल्कुल अच्छा नहीं है। विभिन्न मावेन परियोजनाओं में मौजूद कई परीक्षणों के साथ काम करना, लेकिन एक बड़ी "आईडीई" परियोजना में आयात किया गया, हमें यह याद रखने के लिए मजबूर करें और अपने काम से आराम करने और खुशी प्राप्त करने की अनुमति न दें।
@ Ashosborne1 (व्यक्तिगत रूप से मैं इसे पसंद करता हूं) द्वारा पेश किए गए समाधान के लिए 2 अतिरिक्त आवश्यकताओं की आवश्यकता होती है जो आपको परीक्षण चलाने से पहले करना चाहिए। इस समाधान का उपयोग करने के लिए चरणों की एक सूची इस प्रकार है:
"Src / परीक्षण / संसाधन /" के अंदर एक परीक्षण फ़ोल्डर ("टेवा") और फ़ाइल ("रीडमी") बनाएँ:
src / परीक्षण / संसाधन / टेवा / रीडमी
फ़ाइल को परीक्षण फ़ोल्डर में बनाया जाना चाहिए, अन्यथा, यह काम नहीं करेगा। मावेन खाली फ़ोल्डरों की अनदेखी करता है।
कम से कम एक बार के माध्यम से परियोजना का निर्माण mvn clean install
। यह परीक्षण भी चलाएगा। यह एक पूरी परियोजना के निर्माण के बिना मावेन के माध्यम से केवल अपने परीक्षण वर्ग / विधि को चलाने के लिए पर्याप्त हो सकता है। परिणामस्वरूप आपके परीक्षण संसाधनों को परीक्षण-कक्षाओं में कॉपी किया जाएगा, यहाँ एक रास्ता है:target/test-classes/teva/readme
उसके बाद, आप कोड का उपयोग करके फ़ोल्डर तक पहुंच सकते हैं, पहले से ही @ ashosborne1 द्वारा ऑफ़र किया गया (मुझे क्षमा करें, मैं इस कोड को आइटम की इस सूची के अंदर सही तरीके से संपादित नहीं कर सका):
public static final String TEVA_FOLDER = "teva"; ...
URL tevaUrl = YourTest.class.getClassLoader().getResource(TEVA_FOLDER);
String tevaTestFolder = new File(tevaUrl.toURI()).getAbsolutePath();
अब आप अपना परीक्षण IDE के माध्यम से जितनी बार चाहें, चला सकते हैं। जब तक आप मावेन को साफ न चलाएं। यह लक्ष्य फ़ोल्डर को छोड़ देगा।
एक परीक्षण फ़ोल्डर के अंदर फ़ाइल बनाना और पहली बार मावेन चलाना, इससे पहले कि आप आईडीई के माध्यम से परीक्षण चलाएं आवश्यक कदम हैं। इन चरणों के बिना, यदि आप सिर्फ अपने आईडीई में परीक्षण संसाधन बनाते हैं, तो परीक्षण लिखें और इसे केवल आईडीई के माध्यम से चलाएं, आपको एक त्रुटि मिलेगी। एमवीएन के माध्यम से परीक्षण चलाने से परीक्षण संसाधनों को लक्ष्य / परीक्षण-कक्षाओं / टेवा / रीडमे में बदल दिया जाता है और वे एक क्लास लोडर के लिए सुलभ हो जाते हैं।
आप पूछ सकते हैं, मुझे आईडीई में एक से अधिक मावेन परियोजना के आयात की आवश्यकता क्यों है और इतनी जटिल चीजें क्यों हैं? मेरे लिए, मुख्य प्रेरणा में से एक: आईडीए से संबंधित फाइलों को कोड से दूर रखना। मैं पहली बार अपनी IDE में एक नया प्रोजेक्ट बनाता हूं। यह एक फर्जी प्रोजेक्ट है, जो आईडीई से संबंधित फाइलों का धारक है। फिर, मैं पहले से मौजूद मावेन परियोजनाओं का आयात करता हूं। मैं इन आयातित परियोजनाओं को केवल अपनी मूल नकली परियोजना में IDEA फाइलें रखने के लिए मजबूर करता हूं। परिणामस्वरूप मुझे कोड के बीच आईडीई-संबंधित फाइलें दिखाई नहीं देती हैं। SVN को उन्हें नहीं देखना चाहिए (कृपया ऐसी फ़ाइलों को अनदेखा करने के लिए svn / git को कॉन्फ़िगर करने की पेशकश न करें, कृपया)। इसके अलावा यह बहुत सुविधाजनक है।