में दिखाई नहीं दे रही हैं मैं जेएमआईटी परीक्षण जेएमटर 2.7 के साथ चलाने की कोशिश कर रहा हूं। हालांकि, जुनीट नमूने के ड्रॉप डाउन में टेस्ट क्लास का चयन करते समय, वे दिखाई नहीं देते हैं। जैसा कि मैंने पाया, ऐसा इसलिए है क्योंकि सभी कक्षाओं के लिए परीक्षण कक्षाएं किसी अन्य वर्ग से बढ़ रही हैं (AbstractJUnit4SpringContextTests
आधार वर्ग है, जिसमें विभिन्न विधियों के साथ सुविधा विधियों को प्रदान किया जाता है)। एक परीक्षण वर्ग जो उन बेस वर्गों से विस्तारित नहीं है, का चयन किया जा सकता है।JUnit परीक्षण कक्षाएं जेएमटर
परीक्षण कक्षा वाले जेएआर फ़ाइल मेवेन (टेस्ट-जार) द्वारा बनाई गई है, जेएआर जिसमें सभी निर्भरताएं हैं मैवेन फ़ैट्जर प्लगइन द्वारा बनाई गई है। दोनों जार जेएमटर/lib/junit निर्देशिका में रखा गया है।
मुझे पता है कि जेएमटर मैनुअल का कहना है कि सभी टेस्ट क्लास को जुनीट टेस्ट क्लास से विस्तारित होना चाहिए, लेकिन यह केवल जुनीट 3 के लिए सच है। जुनीट 4 के साथ, जेएमटर को उस आवश्यकता की आवश्यकता नहीं है। बेशक, मैं सभी परीक्षणों को फिर से लिख सकता हूं ताकि उन्हें बेस क्लास से विस्तार नहीं करना पड़े, लेकिन इसके परिणामस्वरूप एक विशाल रखरखाव मुद्दा होगा। तो, मैं जेएमआईटी परीक्षणों को जेएमटर के साथ कैसे निष्पादित करूं जो बेस क्लास से विस्तारित हो?
अपडेट करें 2012-08-09
PMD के संकेत के लिए धन्यवाद, अब मैं निर्भरता एक एक करके JMeter की lib फ़ोल्डर में प्रतिलिपि, और अब जीयूआई अपने सभी इकाई परीक्षण दर्शाता है। इससे पहले कि, मुझे अपने आप से कुछ समस्याएं हल करनी पड़ी:
- लॉगकिट-1.0.1.jar की प्रतिलिपि बनाकर फ़ोल्डर में जेएमटर जीयूआई को शुरू करने से रोका गया। कोई विचार नहीं, क्यों कोई त्रुटि या लॉग संदेश दिया गया था। JVM बस शुरू हुआ और समाप्त हो गया।
- मैवेन निर्भरताओं के कारण कुछ संस्करण संघर्ष थे जो वसंत परीक्षण पैकेज के पुराने संस्करण पेश किए गए थे। इसके परिणामस्वरूप एक पुराने बेस क्लास से एक ही नाम के साथ विस्तारित कुछ परीक्षण कक्षाएं हुईं। पोम फ़ाइल में उन निर्भरताओं को छोड़कर मदद मिली।
अब मैं अपने जुनीट परीक्षण मामलों को निष्पादित कर सकता हूं। हालांकि, मेरी कक्षाओं में कई संदर्भ @Resource
के साथ एनोटेटेड हैं। जेएमटर का टेस्ट्रुनर उन संदर्भों को इंजेक्ट नहीं कर रहा है, क्योंकि जब भी संदर्भ का उपयोग किया जाता है, तो NullPointerException
फेंक दिया जाता है, जैसा कि जेएमटर लॉग में देखा जा सकता है। तो, मैं उन निर्भरताओं को इंजेक्ट करने के लिए जेएमटर कैसे प्राप्त करता हूं, क्या यह भी संभव है?
@resource आमतौर पर संदर्भ के दौरान वसंत द्वारा व्याख्या किया जाता है। इस मामले में मुझे आपके कोड की गहराई से जांच करनी चाहिए, शायद आपको यह देखना चाहिए कि स्प्रिंग टेस्ट केस खुद को कैसे शुरू करता है या आप मैन्युअल रूप से संसाधनों को इंजेक्ट करने के लिए सेटअप विधि को ओवरराइड करने का प्रयास कर सकते हैं। वैसे, अगर मेरी प्रतिक्रिया सही थी तो आपको इसे चिह्नित करना चाहिए और प्रारंभिक एक को बदलने के बजाय शायद एक और प्रश्न खोलना चाहिए, इस तरह एसओ काम करता है। –
@Teinacher आप के लिए एक समाधान मिला है? मेरे पास वही है और इसे हल करने के बारे में नहीं पता – javagirl