2013-02-20 8 views
16

हम अपने स्वयं के स्वचालित रिग्रेशन टेस्ट सिस्टम के लिए काफी बड़े देशी ऐप पर कोड कवरेज को मापना चाहते हैं। यह हमारे ऐप की अंतर्निहित स्क्रिप्टिंग का उपयोग करके एक परिष्कृत, लिखित परीक्षा प्रणाली है। इसमें हजारों परीक्षण हैं और एमएसटीएस्ट यूनिट परीक्षणों द्वारा प्रतिस्थापित नहीं किया जा रहा है।क्या हम एमएसटीएस्ट के बिना वीएस2012 या वीएस -2010 में देशी सी ++ कोड कवरेज प्राप्त कर सकते हैं?

जबकि हम वीएस2012 (प्रीमियम) का उपयोग कर रहे हैं क्योंकि आईडीई वर्तमान में यह अभी भी वीएस -2010 कंपाइलर्स & पुस्तकालयों के साथ संकलित है। यदि कोड कवरेज प्राप्त करने के लिए यह एक शर्त थी तो वह जल्द से जल्द बदल सकता है।

हम इसके लिए अलग-अलग निर्माण कर सकते हैं - उपकरण एक समस्या नहीं है।

मैं बस एमएस दस्तावेज पढ़ने में उलझन में हूं, जो कि एक अनुमान से शुरू होता है कि आप अपने इनबिल्ट परीक्षण ढांचे का उपयोग करके यूनिट परीक्षण चला रहे हैं। यही वह समय है जब मैं सामान खोजने के लिए संघर्ष नहीं कर रहा हूं जो वास्तव में एएलएम के लिए मूल रूप से मूल समर्थन के बारे में बात करता है!

धन्यवाद

+0

afaik यह विजुअल स्टूडियो के अंतिम (या जो भी सबसे महंगा वीएस संस्करण नामित है) संस्करण के साथ ही संभव है। हमने इस पर भी जांच की (यूनिक्स/जेनकींस को कोड कवरेज करने के लिए मारने के लिए) और यूनिक्स कवरेज – Najzero

+0

धन्यवाद पर अटक गया। हमारे पास प्रीमियम व्यापक रूप से तैनात है लेकिन अंतिम नहीं है। –

+1

आप CodeCoverage कमांड लाइन टूल का उपयोग करके VS2012 काफी आसानी से ऐसा कर सकते हैं। यह देखने के लिए जांचें कि क्या आपके पास "% ProgramFiles% \ Microsoft Visual Studio 11.0 \ Team Tools \ Dynamic Code Coverage Tools" है। इसके लिए उपकरण के लिए पीडीबी मौजूद होना आवश्यक है और मुझे यकीन नहीं है कि क्या डीआईए 2010 के साथ पिछड़ा संगतता बनाए रखेगा, इसलिए आपको 2010 के साथ बनाया गया एप्लिकेशन होना आवश्यक है। हालांकि, एक शॉट के लायक है। –

उत्तर

26

विजुअल स्टूडियो 2012 के कोड कवरेज उपकरण परीक्षा निष्पादन प्रणाली से पूरी तरह से अलग है (पूर्ण प्रकटीकरण: मैं इसे लिखा था, लेकिन टीम है कि यह विरासत में मिला के बाद मैं Microsoft छोड़ दिया काफी कुछ उपयोगी कार्यक्षमता निकाला गया)। इसे वीएस 2012 में ग्राउंड अप से गतिशील रूप से मूल देशी (x86 और x86-64) और प्रबंधित कोड (.NET और Silverlight) में डिस्क पर निष्पादन योग्य करने के बजाय प्रक्रिया में लोड होने पर फिर से लिखा गया था।

आप "% ProgramFiles% \ Microsoft Visual Studio 11.0 \ Team Tools \ Dynamic Code Coverage Tools" में CodeCoverage.exe पा सकते हैं।

डेटा एकत्र करने के लिए:

CodeCoverage.exe collect /output:foo.coverage foo.exe foos_args 

एक विन्यास फाइल संग्रह को नियंत्रित करने के लिए निर्दिष्ट किया जा सकता है (वहाँ एक डिफ़ॉल्ट कि निर्देशिका CodeCoverage.config कहा जाता है में से एक है)।

कवरेज डेटा का विश्लेषण करने के लिए, आप दृश्य स्टूडियो 2012 में foo.coverage खोलने या विश्लेषण करने के लिए कवरेज उपकरण ही उपयोग कर सकते हैं:

CodeCoverage.exe analyze /output:results.xml foo.coverage 

नोट: उपकरण जगह लेने के लिए के लिए, .pdb फ़ाइलें चाहिए अपने मॉड्यूल के लिए खोजा जा सकता है। चूंकि आप 2010 के साथ निर्माण कर रहे हैं, इसलिए वे 2012 के डीआईए के साथ काम नहीं कर सकते हैं, इसलिए आपको 2012 के टूलसेट के साथ पुनर्निर्माण करना पड़ सकता है। यदि आप कवरेज विश्लेषण में अपेक्षा रखने वाले मॉड्यूल नहीं देख रहे हैं, तो विश्लेषण आदेश में /include_skipped_modules पास करें; एक "कारण" विशेषता आपको बताएगी कि मॉड्यूल क्यों छोड़ा गया था (बहिष्कृत, कोई डीबग जानकारी, आदि)।

संपादित करें: इसके अलावा, विजुअल स्टूडियो के पिछले संस्करणों के विपरीत, 2012 का कवरेज फ़ाइल प्रारूप पूरी तरह आत्मनिर्भर है। मॉड्यूल और .pdbs को विश्लेषण समय पर उपस्थित होने की आवश्यकता नहीं है।

4

मुझे एहसास है कि यह एक पुरानी पोस्ट है, लेकिन मेरा मानना ​​है कि उत्तर अभी भी प्रासंगिक है।

सी # में मेरे निपटारे में मेरे द्वारा उपयोग की जाने वाली सभी चीजों के साथ, मुझे वास्तव में पसंद नहीं आया जब मैंने विजुअल सी ++ में स्थानांतरित किया। इसके अलावा, आप की तरह एमएसटीएएस केवल मेरे लिए आंशिक रूप से काम किया; मैं अपने स्वयं के परीक्षण अनुप्रयोगों के लिए भी उपयोग किया जाता है।

  • भागो एमएस परीक्षण या एक EXE फ़ाइल
  • कोड प्राप्त करें कवरेज सही दृश्य स्टूडियो में:

    मैं मूल रूप से क्या चाहता निम्नलिखित था।

कुछ शोध करने के बाद, मैंने देखा कि वीएस एंटरप्राइज़ आज टेस्ट एडाप्टर के साथ इस सुविधा का समर्थन करता है।

यदि आप वीएसई पर नहीं हैं, तो मैंने देखा कि कुछ अन्य टूल्स हैं, प्रत्येक उपयोगकर्ता एक स्वतंत्र यूआई प्रदान करता है। व्यक्तिगत रूप से मुझे यह पसंद नहीं है; मैं विजुअल स्टूडियो समुदाय संस्करण में अधिमानतः विजुअल स्टूडियो में अपना कवरेज चाहता हूं।

इसलिए मैंने इस एडिन को खुद बनाने का फैसला किया - और यह वीएसई के रूप में परिष्कृत नहीं है - यह मेरे लिए चाल है।

  • मैंने https://github.com/atlaste/CPPCoverage पर एक VSIX कोड कवरेज टूल लिखा था। असल में यह विजुअल स्टूडियो में हाइलाइटिंग का प्रबंधन करता है, एक क्लिक करने योग्य रिपोर्ट उत्पन्न करता है, और समाधान एक्सप्लोरर में एकीकृत करता है।
  • कवरेज माप के लिए, मैं https://opencppcoverage.codeplex.com/ का उपयोग करता था। असल में जो आपको किसी भी डिबग करने योग्य (मूल) निष्पादन योग्य पर कोड कवरेज परीक्षण करने की अनुमति देता है। आजकल, मैं अपने कोड कवरेज मापने के उपकरण का उपयोग कर रहा हूं (जो ऊपर भी खुले खुले हैं)।
+0

यह एक महान एडन है। मैं इसे एक cmocka सी परियोजना के साथ उपयोग कर रहा हूँ, महान काम करता है। – pogorman

संबंधित मुद्दे

 संबंधित मुद्दे