AFAIK eclEmma, साथ ही कई अन्य कवरेज सिस्टम, कवरेज निर्देश जोड़ने के लिए अपनी .class फ़ाइलों को संशोधित करें। इनमें से अधिकतर उपकरण "संकलन समय" पर करते हैं, रन समय पर नहीं।
PowerMock बजाय, साथ ही AspectJ LTW और कई अन्य प्रणाली, एक ही बाईटकोड हेरफेर लेकिन "चलाने के समय" के रूप में:
PowerMock है कि और अधिक शक्तिशाली क्षमताओं के साथ इस तरह के EasyMock के रूप में अन्य नकली पुस्तकालयों का विस्तार एक रूपरेखा है । पावरमोक एक कस्टम क्लासलोडर और बाइटकोड मैनिपुलेशन का उपयोग करता है ताकि स्थिर तरीकों, रचनाकारों, अंतिम कक्षाओं और विधियों, निजी तरीकों, स्थैतिक प्रारंभकर्ताओं को हटाने और अन्य के मॉकिंग को सक्षम बनाया जा सके।
मैं इसे किसी भी तरह संशोधन कवरेज उपकरण के द्वारा पहले किया भ्रष्ट जब .class फ़ाइलों के क्रम संशोधन हो AspectJ LTW, कारण के साथ संयोजन में दोनों eclEmma (विभिन्न संस्करणों) और Cobertura के साथ एक समान समस्या है,।
मुझे अभी तक कोई समाधान नहीं मिला है, लेकिन कम से कम लक्षण मिला है।
सही समाधान PowerMock उपकरण को डीबग करना होगा और यह पता लगाना होगा कि यह कवरेज टूल कहां और कैसे टूटता है। यह कवरेज उपकरण को तोड़ने के लिए एक परीक्षण उपकरण के लिए काफी एक समस्या है, क्योंकि दो अक्सर एक साथ इस्तेमाल कर रहे हैं :)
स्रोत
2012-07-24 03:29:11
क्या आप मॉकिटो, पावरमैक और एक्लेम्मा की कविता जैसे अधिक विवरण दे सकते हैं? – Brice
अरे, मैं eclEmma के संस्करण 2.1.0 का उपयोग कर रहा हूं, यह उस संस्करण में एक बग है, eclEmma 1.5.x में यह परीक्षण कवरेज ठीक दिखाता है। – LottaLava
ठीक है, ऐसा लगता है कि _EclEmma_ अब संस्करण 2.x के बाद _Emma_ का उपयोग नहीं करता है। वे अपने स्वयं के कवरेज टूल का उपयोग कर रहे हैं जिसे जाकोओ कहा जाता है। जैसा कि मैं पावरमैक संस्करण का उपयोग नहीं कर रहा हूं, आपको PowerMock 1.4.11 का प्रयास करना चाहिए जिसमें जैकोको से संबंधित कुछ फ़िक्स शामिल हैं: http://powermock.googlecode.com/svn/trunk/changelog.txt – Brice