2013-01-21 14 views
5

मैं अपने जुनीट कोड कवरेज को स्कैन करने के लिए एक्लेम्मा (ग्रहण के अंदर) का उपयोग कर रहा हूं। यह सही ढंग से काम करता है - हालांकि, मैं नहीं चाहता कि एक्लेमा मेरे src/view फ़ोल्डर को स्कैन करे क्योंकि इसमें स्विंग कोड है जिसे मैं परीक्षण के योग्य नहीं मानता।एक्लेमा और ग्रहण का उपयोग करके कुछ कक्षाओं को स्कैन करने से मैं कैसे अनदेखा कर सकता हूं?

क्या इस फ़ोल्डर को अनदेखा करने का कोई तरीका है जब EclEmma चलता है ताकि यह: ए) तेजी से चलता है, और बी) कवरेज प्रतिशत को कम नहीं करता है?

संपादित करें:

मेरे परियोजना की संरचना होती है:

src/view 
src/model 
src/controller 

मैं इन (संभवतः अन्य) पथ के साथ की कोशिश की है प्राथमिकताएँ पृष्ठ में अनुभाग एंट्री:

"src/view" 
"src/view/*" 
"view" 
"view/*" 
src/view 

ये प्रयोग कर रहे हैं प्राथमिकता पृष्ठ में खंड को छोड़कर:

* 
*View* 
*View*.class 
src/view/*View* 
src/view/*View*.class 

वे सभी मेरे पूरे src फ़ोल्डर का विश्लेषण करने के उसी परिणाम के साथ मुझे छोड़ देते हैं।

उत्तर

5

आप specify an exclude field कर सकते हैं:

शामिल नहीं: कि निष्पादन विश्लेषण से बाहर रखा जाना चाहिए वर्ग नामों की एक सूची। सूची प्रविष्टियों को एक कोलन द्वारा अलग किया जाता है (:) और वाइल्डकार्ड वर्ण (* और?) का उपयोग कर सकते हैं। (डिफ़ॉल्ट: खाली):

केवल पथ मिलान प्रविष्टियों:

हालांकि, यह classpath मिलान के लिए अपने विकल्पों का उपयोग करना आसान हो सकता है अल्पविराम तार की सूची अलग है कि चाहिए वर्ग पथ प्रवेश के साथ मैच । एक क्लास पथ प्रविष्टि फ़िल्टर से मेल खाती है, यदि इसमें दिए गए तारों में से एक है। (जैसे "src/मुख्य/जावा", डिफ़ॉल्ट: कोई फिल्टर)

eclemma - how to ignore source कैसे src फ़ोल्डरों की अनदेखी करने के बारे में देखें।

इसके अलावा

उनके सावधानी कृपया ध्यान दें,

चेतावनी: अपनी सेटिंग्स वर्ग पथ के किसी भी अपनी परियोजना (ओं) में प्रविष्टियां मेल नहीं खाती हैं, तो कवरेज मोड में हर नए लांच एक खाली विश्लेषण करना होगा गुंजाइश।

+1

धन्यवाद, ऐसा लगता है कि मैं क्या चाहता हूं। दुर्भाग्यवश, जब मैंने com.test.project.view पैटर्न का उपयोग किया। * बहिष्कार में, यह कुछ भी नहीं निकलता प्रतीत होता है। संपादित करें: ओह, मैंने यह नहीं देखा कि कक्षा के नाम ... – sdasdadas

+0

मेरा मानना ​​है कि यह सही जवाब है लेकिन मुझे विश्वास नहीं है कि यह वास्तव में एक्लेमा में काम करता है। मैं स्वीकार कर रहा हूं लेकिन अगर किसी को इसे पढ़ना चाहिए तो कृपया जान लें कि मैं कक्षाओं या पथों को शामिल करने या निकालने का तरीका नहीं समझ सकता। – sdasdadas

+0

@sdasdadas यह सुनकर खेद है, क्या आप जो भी कोशिश कर चुके हैं उसे पोस्ट कर सकते हैं? यदि कोई टाइपो है तो यह बिल्कुल काम नहीं करेगा। – stevebot

6

[संपादित करें] देखरेख का कहना है कि आप नहीं कर सकते एक स्रोत निर्देशिका स्तर को छोड़कर: https://github.com/jacoco/eclemma/issues/70

मैंने सोचा था कि eclemma को छोड़कर नहीं किया गया फाइलें: यह है। जैसा मैंने सोचा नहीं।

जब आप वरीयताओं में शामिल होते हैं और अपना .classes.here। * निर्दिष्ट करते हैं, उदाहरण के लिए, इसका मतलब है कि वे कक्षाएं आपके सभी कोड को कवर करने की ओर गिनती नहीं करेंगे, न कि उन वर्गों को शामिल नहीं किया जाएगा परीक्षणों से क्या कवर किया जाना चाहिए।

इसे आज़माएं और देखें। उस वर्ग को बाहर करने का प्रयास करें जिसमें आपको पता है कि इसमें कवरेज है।एक बार जब आप इसे प्राथमिकता को छोड़कर रख देते हैं, तो एक नई कवरेज चलाने पर वे अभी भी कवरेज विंडो में होंगे, लेकिन वे 0% के रूप में आएंगे और सभी लाल हो जाएंगे।

यदि आप मुझसे पूछें तो बेकार है। मैं अभी भी कक्षाओं से कक्षाओं को बाहर करने के लिए पर्याप्त समाधान की तलाश कर रहा हूं जिन्हें परीक्षणों द्वारा कवर किया जाना चाहिए।

+1

मुझे एक ही समस्या का सामना करना पड़ रहा है, क्या इसे हल करने का कोई समाधान है –

1

मैंने एक्लेमा पर छोड़ दिया है क्योंकि मैं इसे उन चीजों को करने के लिए नहीं कर सकता जो मैं करना चाहता हूं, इसलिए मैं एक अलग विधि का उपयोग करता हूं - अगर यह किसी और की मदद करता है तो मैं इसे यहां दस्तावेज करूंगा।

  1. परीक्षण से कक्षाओं को बाहर करने के लिए, मैं अपने सभी टेस्ट क्लास को * Case.java के रूप में नामित करता हूं और फिर उन्हें SuiteClasses के माध्यम से शामिल या बहिष्कृत करता हूं। आप https://github.com/junit-team/junit4/wiki/Aggregating-tests-in-suites
  2. पर कवरेज को मापने के लिए, मैवेन और कोबर्टुरा का उपयोग करने के बारे में और अधिक पढ़ सकते हैं। यह केवल मेरे परीक्षण सूट में निर्दिष्ट फाइलों का परीक्षण करेगा और तदनुसार कवरेज रिपोर्ट तैयार करेगा।