2011-02-10 8 views
6

मैं इस post में लिखे गए कोड कवरेज फ़ाइल को उत्पन्न करने के लिए बैच फ़ाइल आया था।बैच चल रहा है वीएस कोड कवरेज टूल्स

cl /Zi hello.cpp -link /Profile 
vsinstr -coverage hello.exe 
start vsperfmon /coverage /output:run.coverage 
hello 
vsperfcmd /shutdown 

हालांकि, जब मैं बैच फ़ाइल चलाता हूं तो मुझे यह त्रुटि संदेश मिला।

enter image description here

मैं इसे खत्म करने के लिए मैन्युअल रूप से vsperfcmd /shutdown चलाने के लिए किया था। क्या गलत हो सकता है?

उत्तर

5

यह सिर्फ एक समय मुद्दा है।

start vsperfmon /coverage /output:run.coverage कमांड एक अलग प्रक्रिया में vsperfmon.exe शुरू होता है।

समवर्ती रूप से, आपकी स्क्रिप्ट hello चलाने के लिए चल रही है। यदि hello एक बहुत ही सरल प्रोग्राम है, तो यह संभव है कि यह vsperfmon.exe चल रहा है और पूरी तरह से प्रारंभ होने से पहले निष्पादित और पूर्ण हो जाता है। यदि मॉनीटर ऊपर और चलने से पहले आपकी स्क्रिप्ट vsperfcmd /shutdown हिट करती है, तो आपको वह त्रुटि मिल जाएगी जो आप दिखा रहे हैं।

vsperfcmd, बस एक नियंत्रक/vsperfmon के लिए लांचर है ताकि आप उस विशेष रूप से उपयोग कर सकते हैं अपने बैच फ़ाइल में:

cl /Zi hello.cpp -link /Profile 
vsinstr -coverage hello.exe 
vsperfcmd /start:coverage /output:run.coverage 
hello 
vsperfcmd /shutdown 

इस मामले में, vsperfcmd करने के लिए पहली कॉल जब तक मॉनीटर और पूरी तरह से है अवरुद्ध कर देगा चल रहा है।

+0

धन्यवाद उत्तर के लिए, और यह एक आकर्षण की तरह काम करता है। क्या आप इस सवाल को भी मेरी मदद कर सकते हैं? - http://stackoverflow.com/questions/4965173/generating-coverage-file-programmatic-way-with-visual-studio-2010 – prosseek

+0

ज़म !!!!!!! "vsperfcmd सिर्फ vsperfmon के लिए एक नियंत्रक/लॉन्चर है" मुझे जिस संकेत की आवश्यकता थी। – granadaCoder

0

एक आईआईएस एक्सप्रेस आवेदन के साथ पहले से ही instrumented फ़ाइलों के लिए ऐसा करने के लिए: एक ब्राउज़र की संभावना स्वत: लॉन्च होगा से C:\Users\<your user>\Documents\IISExpress\config\applicationhost.config

vsperfcmd /start:coverage /output:run.coverage 
"c:\Program Files (x86)\IIS Express\iisexpress.exe" /site:"<that thing you got from applicationhost.config>" 

साइट का नाम प्राप्त करें। अपने कोड में चारों ओर क्लिक करें, अपने मैनुअल परीक्षण करें।

तो खत्म करने के लिए

vsperfcmd /shutdown 
संबंधित मुद्दे