2010-10-18 4 views
37

एमएसडीएन here के अनुसार और here पर चर्चा की गई, हम कमांड लाइन से परीक्षण चलाने के लिए MSTest.exe का उपयोग कर सकते हैं - जो आईडीई के भीतर चलने से मीठा और तेज है (विशेष रूप से धीमा अगर आप मेरे जैसे बड़े समाधान पर काम कर रहे हैं)।कमांड लाइन MSTest.exe का उपयोग कर मेरे समाधान में सभी परीक्षण कैसे चलाएं?

मेरा प्रश्न कैसे मैं MSTest.exe का उपयोग अपने समाधान में सभी परीक्षण चलाने के लिए कर सकते हैं? /container विकल्प में निर्दिष्ट असेंबली में परीक्षणों को फ़िल्टर करने के लिए केवल /test विकल्प है। मैं केवल इस आदेश को कॉल करने के बारे में सोच सकता हूं एन बार दिया गया है कि मेरे पास मेरे समाधान (!?) में सभी एन टेस्ट असेंबली हो सकती है इसके अलावा, रन के बाद के परिणाम प्रति-असेंबली मूलभूत हैं ताकि यह सुनिश्चित करना आसान न हो कि कौन से परीक्षण विफल हुए/बीतने के।

यदि आप एक बेहतर तरीका जानते हैं, तो कृपया साझा करें! धन्यवाद!

+0

आप अपने परीक्षण निष्पादित करने से पहले विधानसभाओं को मर्ज करने के लिए ILMerge का भी उपयोग कर सकते हैं। – Marco

उत्तर

5

आप Gallio.Echo परीक्षण धावक को देखना चाहते हैं जो Gallio परीक्षण स्वचालन प्लेटफ़ॉर्म के साथ आता है। यह एक मुफ्त (ओएसएस) कई सुविधाजनक रिपोर्टिंग उपकरण और परीक्षण धावक और जिसके साथ पैकेज सबसे मौजूदा परीक्षण चौखटे (MbUnit, NUnit, MSTest, XUnit, आदि)

alt text

अधिक विशेष रूप से, Gallio.Echo एक है का समर्थन करता है है बहुमुखी कमांड लाइन परीक्षण धावक। आप परीक्षण असेंबली, विभिन्न फ़िल्टर, और कई अतिरिक्त विकल्पों की एक सूची निर्दिष्ट कर सकते हैं।

mstest.exe /testcontainer:yourTests.dll /resultsfile:res.trx 

और यह है कि विधानसभा में सभी परीक्षणों चलेंगे, और में परिणाम थूक से बाहर: गल्लियो एक रिपोर्ट (XML, HTML, पिन, आदि) में परीक्षण के परिणाम

-3

बस का उपयोग समेकित निर्दिष्ट फाइल

+6

प्रश्न सभी परीक्षणों को चलाने के बारे में था, जैसे कि बनाम जब क्लिक करें> समाधान में सभी परीक्षण – alga

13

मैंने testmetadata तर्क का उपयोग करके इसे पूरा किया और इसे मेरी .vsmdi फ़ाइल पर इंगित किया।

जैसा कि here समझाया गया है।

उदा .:

mstest /testmetadata:mySolution.vsmdi 

हालांकि ध्यान दें कि testmetadata ज्यादा नाजुक (जैसे empty test lists combined with the Ignore attribute cause "Specified cast is not valid") हो सकता है। परीक्षण कक्षाओं वाले सभी डीएलएल के साथ बैच बनाना अधिक विश्वसनीय विकल्प हो सकता है।

+0

हाय। परीक्षण संपादक को वीएस2015 में बहिष्कृत किया गया है। क्या आप जानते हैं कि मैं VS2015 में प्लेलिस्ट की नई कार्यक्षमता में सूची कैसे माइग्रेट कर सकता हूं? अग्रिम में धन्यवाद। – mggSoft

6

मुझे कुछ भी इंस्टॉल करने या vsmdi फ़ाइलों को उत्पन्न किए बिना, वही चीज़ चाहिए, इसलिए मैं नीचे PowerShell स्क्रिप्ट के साथ आया था। यह सभी एक फ़ोल्डर पर एक आदेश में परीक्षण चलाता है और यह उप-फ़ोल्डर (नहीं समाधान, लेकिन ठीक मेरे लिए) है।

$x = ""; dir *\bin\*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x" 

निर्देश::

कैसे इस स्क्रिप्ट और अधिक सुरुचिपूर्ण बनाने के लिए सुझाव देने के लिए स्वतंत्र महसूस

  • Environment variables चर PATH के माध्यम से mstest.exe के लिए पथ जोड़ें, अन्यथा सिर्फ साथ mstest की जगह उपरोक्त PowerShell स्क्रिप्ट में इसका पूरा पथ।

    enter image description here

  • ओपन PowerShell, आदेश पेस्ट करें।
  • अपनी आवश्यकताओं को पूरा करने के लिए *\bin\*test*.dll संशोधित करें। वर्तमान स्क्रिप्ट में इसे DLLsbin फ़ोल्डर में रिकर्सिवली में मिलेगा, जिसमें फ़ाइल नाम में सबस्ट्रिंग "टेस्ट" होगा।
  • आदेश चलाएं!
+0

मैंने इसे परीक्षण डीएल बेहतर खोजने में सक्षम होने के लिए थोड़ा सा संशोधित किया है: '$ x =" "; Get-ChildItem -path। -Recurse- शामिल करें * Test.dll | जहां {$ _। फुलनाम-मैच "बिन"} | foreach {$ x + = "/ testcontainer:" "$ _" ""}; अर्थात् "mstest $ x" ' – engineforce

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