2012-09-25 13 views
19

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

तो: मैं श्रेणी या परियोजना प्रकार द्वारा परीक्षण कैसे बहिष्कृत कर सकता हूं? किसी दिए गए TestCategory में परीक्षण ...

[CodedUITest] 
public class SearchViewTests 

या बाहर करने:

उदाहरण के लिए, मैं CodedUItests बहिष्कृत करना चाहते हैं

[TestMethod] 
[TestCategory("Database Integration")] 
public void ContactRepositoryGetByIdWithIdExpectCorrectContact() 

मैं विशेष रूप से कोडित यूआई परीक्षण बाहर करना चाहते हैं क्योंकि वे काम जारी रखने की मेरी क्षमता को बाधित करते हैं, जबकि अन्य सभी परीक्षण बिना किसी परेशानी के पृष्ठभूमि में खुशी से चलेंगे।

+0

क्या आप बिल्ड सर्वर का उपयोग कर रहे हैं? – Cybermaxs

+0

यह विजुअल स्टूडियो 2012 में बनाया गया स्थानीय टेस्ट रनर है - इसलिए कोड के विरुद्ध चल रहा है मैंने अभी तक प्रतिबद्ध नहीं किया है। मुझे पता है कि एमएसबिल्ड के साथ मैं क्या करना चाहता हूं, लेकिन स्थानीय टेस्ट रनर के साथ नहीं। – Fenton

उत्तर

6

मुझे "पूर्ण नाम" फ़िल्टर निर्दिष्ट करने वाला एकमात्र "समाधान" (या बेहतर कामकाज) है। मूल रूप से मैं आमतौर पर

  • ProjectA.UnitTests
  • ProjectA.IntegrationTests
  • और इतने पर

    • PROJECTA की तरह मेरे समाधान की संरचना करें। अब मैं टेस्ट एक्सप्लोरर में FullName: "UnitTests" जैसे फ़िल्टर को निर्दिष्ट कर सकता हूं जो काम करता है।
      (मैं खोज नाम के भीतर एक regex का उपयोग करने में सक्षम होने की उम्मीद थी लेकिन यह समर्थित होना प्रतीत नहीं होता।)

      enter image description here

    +0

    यह इस दौरान काम कर सकता है! – Fenton

    +0

    जल्द ही आने वाली सुविधा का टोड का नोट बहुत अच्छी खबर है - लेकिन यह अंतरिम समाधान है जो मेरे लिए सबसे अच्छा काम करता है क्योंकि मैं 'पूर्ण नाम: "MyProject.Integration.Tests को फ़िल्टर कर सकता हूं" केवल एकीकरण परीक्षण और' पूर्ण नाम: "MyProject यूनिट परीक्षण देखने के लिए "' "। अद्यतन के लिए – Fenton

    3

    आप यूनिट टेक्स्ट एक्सप्लोरर में खोज फ़िल्टर का उपयोग कर सकते हैं।

    unit test explorer

    नया टेस्ट Exlorer में 2012 के साथ भेज दिया, आपके द्वारा 'परीक्षण के परिणाम', 'फ़ाइल नाम में', ... आदि लेकिन में RTM समूह परीक्षण 'TestCategory' द्वारा समूह/खोज का निर्माण कर सकते मौजूद नहीं है टेस्ट एक्सप्लोरर से। हालांकि VS2012 में TestCategory (टेस्टकेसफिल्टर का उपयोग कर वीएस 2012 आरसी में चुनिंदा यूनिट परीक्षण चलाना) के आधार पर कमांडलाइन और टीमबिल्ड में एक फ़िल्टर है।

    वीएस देव टीम के एक सदस्य से, वे इस लापता विशेषता के महत्व को समझ गए। यह बैकलॉग में है, और यह फरवरी निर्माण/अपडेट में उपलब्ध होना चाहिए। http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

    0

    आप इस लेख को देखा है:

    निम्न ब्लॉग में अधिक विवरण प्रदान करता है? How to: Group and Run Automated Tests Using Test Categories

    मैंने अभी तक वीएस 2012 के साथ यह कोशिश नहीं की है, लेकिन यह अभी भी मान्य हो सकती है। जहां तक ​​मैं देख सकता था कि टीएफएस के लिए कोई संदर्भ नहीं है, इसलिए यह सामान्य वीएस परीक्षण धावक पर इंगित करना चाहिए।

    +2

    मुझे नहीं लगता कि यह वीएस2012 में है - टेस्ट व्यू को टेस्ट एक्सप्लोरर द्वारा प्रतिस्थापित किया गया है और यह श्रेणी को अवगत नहीं लगता है - हालांकि साइबरमैक्स के उत्तर से पता चलता है कि वीएस देव टीम इसे जोड़ सकती है। वीएस2012 समकक्ष आलेख से पता चलता है कि यह केवल वर्तमान में कमांड लाइन के माध्यम से उपलब्ध है: http://msdn.microsoft.com/en-us/library/dd286683%28v=vs.110%29.aspx – Fenton

    7

    विजुअल स्टूडियो 2012 अद्यतन 1 सीटीपी समर्थन जोड़ा गया है परीक्षण एक्सप्लोरर को परियोजनाओं और श्रेणियों (लक्षण) द्वारा समूहित करने के लिए। http://blogs.msdn.com/b/visualstudioalm/archive/2012/10/08/visual-studio-2012-update-1-ctp.aspx http://go.microsoft.com/fwlink/?LinkId=268021

    +0

    +1। लक्षण वास्तव में वही करता है जो मैं चाहता हूं। – Fenton

    3

    एक फिल्टर आप टेस्ट एक्सप्लोरर पर आवेदन कर सकते हैं नहीं है। विशेषता: "यूनिटटेस्ट" यह फ़िल्टर केवल दूसरों को अनदेखा करते हुए TestCategory ("UnitTest") विशेषता के साथ परीक्षण करेगा।

    42

    टी एल; डॉ संस्करण:

    Test explorer showing -Trait:"CategoryName" filter

    अन्य उत्तर समाधान और अधिक हाल ही में Traits विकल्प के उपयोग पर टिप्पणी की है। हालांकि, कोई भी आपको बताता है कि कैसे विशेष रूप से एक विशेषता के लिए परीक्षण बहिष्कृत करें। ऐसा करने के लिए, बस एक - (ऋण) का उपयोग खोज बॉक्स में एक फिल्टर, उदा .:

    -Trait:"DatabaseIntegration" 
    

    यह नकारना है कि विशेषता के साथ सभी परीक्षणों को बाहर निकाल देगा।

    एक फिल्टर के परिणामों के एक सबसेट निकालने के लिए, निम्न सिंटैक्स का उपयोग:

    FilterName:"Criteria" -FilterName:"SubsetCriteria"

    उदाहरण के लिए,

    FullName:"MyClass" - FullName:"PerfTest"

    MSDN documentation on these features निम्नलिखित विवरण है उन सभी परीक्षणों को लौटाता है जिनमें उनके नाम पर "MyClass" शामिल है, उन परीक्षणों को छोड़कर जिनमें उनके नाम पर "PerfTest" भी शामिल है।

    1

    पार्टी के लिए थोड़ा देर हो चुकी थी। मेरे पास एक ही समस्या थी जहां सभी डेवलपर्स को विघटनकारी कोडेडयूआई के साथ सामना करना पड़ा जब समाधान में सभी यूनिट परीक्षण चला रहे थे। मेरे वैकल्पिक हल CodedUI परियोजना के AssemblyInitializer के लिए निम्न जोड़ने के लिए है:

    if(!ConfigurationManager.AppSettings["MachinesToRunCodedUI"].Split(',').Contains(Environment.MachineName)) 
         Assert.Inconclusive("CodedUI Tests are skipped."); 
    

    केवल जब एक मशीन है कि MachinesToRunCodedUI सूची का हिस्सा है, यह CodedUI परीक्षण चलेंगे।

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