c# - विजुअल स्टूडियो 2012 को मेरे परीक्षण क्यों नहीं मिलते हैं?




.net visual-studio (20)

मेरे पास कुछ परीक्षण हैं जो Microsoft.VisualStudio.TestTools.UnitTesting में निर्मित हैं। Microsoft.VisualStudio.TestTools.UnitTesting , लेकिन उन्हें चलाने के लिए नहीं मिल सकता है।

मैं विजुअल स्टूडियो 2012 परम का उपयोग कर रहा हूं।

मेरे पास दो परियोजनाओं का समाधान है; using Microsoft.VisualStudio.TestTools.UnitTesting , using Microsoft.VisualStudio.TestTools.UnitTesting [TestClass] , [TestClass] कक्षा से पहले, [TestMethod] परीक्षण विधियों से पहले और संदर्भ Microsoft.VisualStudio.QualityTools.UnitTestFramework (संस्करण 10.0.0.0, रनटाइम संस्करण v2.0.50727)। मैंने डॉट-नेट फ्रेमवर्क 3.5, 4 और 4.5 अन्य लोगों को पुनः-लक्ष्यीकरण त्रुटि देने का प्रयास किया है।

मैंने समाधान और परियोजना बनाने की कोशिश की है। टेस्ट एक्सप्लोरर के पास संदेश उपलब्ध है 'सभी उपलब्ध परीक्षणों को खोजने के लिए अपना समाधान बनाएं। अपने समाधान में सभी परीक्षणों को बनाने, खोजने और चलाने के लिए "सभी चलाएं" पर क्लिक करें।

तो सवाल यह है कि: परीक्षणों को खोजने के लिए मुझे विजुअल स्टूडियो कैसे प्राप्त किया जाए?

इसका पालन करने का भी प्रयास किया है: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx लेकिन बिना किसी सफलता के: मैं अनुभाग शुरू होने में फंस गया, जब पूछा गया राइट क्लिक करें और create tests चुनें। कोई create tests

मेरे पास यह परीक्षण है (यह संकलित करता है, लेकिन परीक्षण एक्सप्लोरर में दिखाई नहीं देता है):

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

अब मैंने पाया है (नीचे हटाए गए उत्तर देखें) क्योंकि ऐसा इसलिए है क्योंकि यह एक साझा ड्राइव पर है, लेकिन मुझे अभी तक पता नहीं है कि इसके आसपास कैसे जाना है। (शायद सुरक्षा सेटिंग के बारे में कुछ)।


इसके लिए मेरा जवाब जोड़ना इसके लिए Google पर शीर्ष परिणाम है।

मैं विजुअल स्टूडियो 2015 का उपयोग कर रहा हूं और (अनजाने में - मैंने अभी Install-Package NUnit एनयूनीट चलाया) ने मेरे परीक्षण प्रोजेक्ट में NUnit3 पैकेज NuGet स्थापित किया। मेरे पास पहले से ही एनयूनीट टेस्ट एडाप्टर एक्सटेंशन स्थापित है, और मेरे परीक्षण अभी भी दिखाई नहीं दे रहे थे।

उपकरण> एक्सटेंशन और अपडेट के माध्यम से NUnit3 टेस्ट एडाप्टर को स्थापित करने के लिए यह मेरे लिए तय किया गया है।


ऐसा लगता है कि न्यूटिट फ्रेमवर्क 2.6.4 एनयूनीट टेस्ट एडाप्टर के साथ अच्छी तरह से काम नहीं करता है। वेबसाइट में यह उल्लेख करता है कि टेस्ट एडाप्टर केवल एनयूनीट फ्रेमवर्क 2.6.3 के साथ काम करेगा।

यह मेरी समस्या थी: 1. मैंने VS2012 में Nuget के माध्यम से अलग से NUnit और NUnit टेस्ट एडाप्टर डाउनलोड किया था। किसी भी तरह NNnit को 2.6.4 में अपडेट किया गया अचानक मुझे सूचीबद्ध मेरे टेस्ट केस नहीं दिखाई दिए।

ठीक कर:

  1. Nuget और Nuget टेस्ट एडाप्टर अनइंस्टॉल करें

    ए। टूल्स> Nuget> Nuget Pkg प्रबंधक> समाधान के लिए Nuget Pkg प्रबंधित करें पर जाएं

    ख। स्थापित संकुल सूचीबद्ध करें

    सी। प्रबंधन पर क्लिक करें

    घ। अपनी परियोजनाओं को अनदेखा करें

  2. NUnit 2.6.3 फ्रेमवर्क सहित NUnit परीक्षण एडाप्टर स्थापित करें

  3. स्वच्छ / पुनर्निर्माण समाधान

  4. ओपन टेस्ट> टेस्ट एक्सप्लोरर> सभी को चलाएं

मैं सभी परीक्षण मामलों को देखता हूं

उम्मीद है की यह मदद करेगा


कुछ सामान्य परीक्षण समस्याओं को हल करने के लिए त्वरित जांच सूची। निश्चित करें कि:

  1. टेस्ट क्लास और टेस्ट विधियां public
  2. टेस्ट क्लास में [TestClass] टेस्ट क्लास [TestClass] विशेषता है
  3. टेस्ट विधियों में [TestMethod] विशेषता है

अगर इससे मदद नहीं मिलती है, तो सफाई की कोशिश करें, समाधान पुनर्निर्माण और विजुअल स्टूडियो को पुनरारंभ करें।


कृपया कीवर्ड को अपनी कक्षा परिभाषा में जोड़ें। आपकी टेस्ट क्लास वर्तमान में अपनी असेंबली के बाहर दिखाई नहीं दे रही है।

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

जब मैं एक अलग पीसी में समाधान बनाने की कोशिश करता हूं तो मैं कई बार इस मुद्दे का सामना कर रहा था।

मैं NUnit और Specflow का भी उपयोग कर रहा हूं। डिफ़ॉल्ट रूप से मेरा परीक्षण प्रोजेक्ट X86 को लक्षित करता है लेकिन मुझे इसे X64 में बदलना है। चरण हैं 1. टेस्ट मेनू -> टेस्ट सेटिंग -डिफॉल्ट प्रोसेसर आर्किटेक्चर -> x64। 2. स्वच्छ निर्माण 3. बिल्ड 4. यदि अभी भी परीक्षण नहीं दिखाया गया था। 5. उपकरण  एक्सटेंशन और अपडेट पर जाएं, फिर NUnit और Specflow लाइब्रेरीज़ इंस्टॉल करें 6. क्लीन बिल्ड 7. बिल्ड करें

फिर आमतौर पर परीक्षण टेस्ट संपादक में दिखाया जाएगा।


जांचें कि आपकी टेस्ट प्रोजेक्ट केवल आपके प्रोजेक्ट गुणों में विलंब चिह्न पर सेट नहीं है -> साइनिंग। यदि ऐसा है, तो इसे अचयनित करें और एक स्वच्छ पुनर्निर्माण करें।


नेटवर्क शेयर पर समाधान खोलने की कोशिश करते समय मैं एक ही मुद्दे में भाग गया। इस मामले में टेस्ट एक्सप्लोरर द्वारा कोई यूनिट टेस्ट नहीं मिलेगा। समाधान यह साबित होता है:

नियंत्रण कक्ष -> इंटरनेट विकल्प -> "सुरक्षा" टैब -> "इंट्रानेट" पर क्लिक करें और "साइट्स" सूची में नेटवर्क शेयर धारण करने वाला सर्वर आईपी पता या होस्ट नाम जोड़ें।

ऐसा करने के बाद, मैंने समाधान को दोबारा संकलित किया और अब परीक्षण सामने आए। यह @BigT द्वारा किए गए उत्तर के समान होना चाहिए।


माइक्रोसॉफ्ट विजुअल स्टूडियो 2013 एक्सप्रेस से माइक्रोसॉफ्ट विजुअल स्टूडियो 2012 एक्सप्रेस में मेरे समाधान को अपग्रेड करते समय मुझे यह समस्या थी।

मैंने 2012 में यूनिट टेस्ट प्रोजेक्ट बनाया था, और 2013 में खोलने के बाद यूनिट टेस्ट प्रोजेक्ट परीक्षण एक्सप्लोरर में कोई परीक्षण नहीं दिखाएगा। हर बार जब मैंने परीक्षण चलाने या डीबग करने का प्रयास किया तो यह विफल रहा, आउटपुट विंडो में निम्नलिखित कह रहा है:

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

मैंने यह भी देखा कि परीक्षणों को डीबग करने पर, यह विजुअल स्टूडियो 2012 का एक उदाहरण लॉन्च कर रहा था। इसने मुझे इस तथ्य से चिपकाया कि यूनिट टेस्ट प्रोजेक्ट अभी भी 2012 का संदर्भ दे रहा था। परीक्षण परियोजना संदर्भ को देखते हुए मुझे एहसास हुआ कि यह गलत माइक्रोसॉफ्ट विजुअल को लक्षित कर रहा था विजुअल स्टूडियो के इस संस्करण के लिए स्टूडियो यूनिट टेस्ट फ्रेमवर्क डीएलएल:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

मैंने संस्करण संख्या 11.0 से 12.0 तक बदल दी:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

मैंने सभी को पुनर्निर्मित किया और इस मुद्दे को ठीक किया - सभी परीक्षण टेस्ट एक्सप्लोरर में पाए गए थे और अब सभी परीक्षण पूरी तरह से पाए जाते हैं और चल रहे हैं।


मुझे एक ही समस्या थी .. मेरे मामले में यह एक निजी संपत्ति TestContext कारण हुआ था।

इसे निम्नलिखित में बदलना:

public TestContext TestContext
{
    get;
    set;
}

समाधान की सफाई और निर्माण के बाद (जैसा कि @Ourjamie के जवाब में वर्णित है), प्रभावित परीक्षण वर्ग में परीक्षण विधियां टेस्ट एक्सप्लोरर में उपलब्ध थीं।


मुझे एक ही समस्या थी, लेकिन थोड़ा अलग था।

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

अंततः मुझे पता चला कि मेरे पास टेस्ट क्लास में एक निजी विधि थी जो कक्षा के अंदर पहली विधि थी। मैंने परीक्षण विधि के बाद निजी विधि को स्थानांतरित कर दिया; तो अब, [TestMethod] विशेषता वाला एक तरीका कक्षा के अंदर पहली विधि है। अजीब, लेकिन अब यह काम करता है।

उम्मीद है कि यह किसी दिन किसी की मदद करता है।


मुझे त्रुटि मिल रही थी: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."

विजुअल स्टूडियो को प्रशासक के रूप में चलाने का प्रयास करें। यह मेरे लिए काम किया।

इस त्रुटि पर चर्चा करने वाली एक और स्टैक ओवरफ़्लो पोस्ट है , और वही समाधान उनके लिए काम करता है। प्रश्न यह बनी हुई है कि यह क्यों काम करता है।


मुझे पता है कि यह एक पुराना सवाल है लेकिन विजुअल स्टूडियो 2015 के साथ मुझे ऐसे मुद्दे थे जहां मेरी नव निर्मित टेस्ट क्लास को पहचाना नहीं जा रहा था। सब कुछ कोशिश की। इस मुद्दे को समाप्त करने का क्या मतलब था कि कक्षा "परियोजना में शामिल नहीं थी"। मुझे केवल विजुअल स्टूडियो को पुनरारंभ करने और यह देखते हुए कि मेरी टेस्ट क्लास वहां नहीं थी। छिपी हुई फाइलों को दिखाने पर, मैंने इसे देखा, साथ ही साथ मैंने जो अन्य कक्षाएं लिखी थीं, उनमें शामिल नहीं थे। उम्मीद है की वो मदद करदे


मेरे पास विजुअल स्टूडियो 2012 है और मैं टेस्ट एक्सप्लोरर में टेस्ट नहीं देख सका,

तो मैंने निम्नलिखित स्थापित किया: NUnit टेस्ट एडाप्टर

यह मेरे लिए मुद्दा तय किया!


मेरे पास समान लक्षण थे, लेकिन विभिन्न परिस्थितियों में।

मुझे पीटर लैमबर्ग के समाधान के लिए एक अतिरिक्त कदम जोड़ना पड़ा - अपना समाधान / परियोजना साफ़ करें।

मेरी unittest परियोजना x64 लक्ष्य। जब मैंने प्रोजेक्ट बनाया तो यह मूल रूप से x86 को लक्षित कर रहा था।

X64 पर स्विच करने के बाद मेरे सभी यूनिट परीक्षण गायब हो गए।

मुझे टेस्ट मेनू में जाना पड़ा -> टेस्ट सेटिंग -डिफॉल्ट प्रोसेसर आर्किटेक्चर -> x64।

वे अभी भी दिखाई नहीं दिया।

एक निर्माण किया था।

अभी भी दिखाई नहीं दिया।

अंत में एक साफ किया

फिर वे दिखाए गए।

मुझे साफ समाधान मिलता है और सेटिंग बदलते समय गेंद खेलने के लिए समाधान प्राप्त करने में काफी उपयोगी होता है। कभी-कभी मुझे चरम पर जाना पड़ता है और obj और bin निर्देशिका को हटा देना पड़ता है और पुनर्निर्माण करता है।


मेरे लिए समाधान थोड़ा सा जटिल था।

मैंने अभी अपनी मशीन (गिटहब से क्लोन) पर एक मौजूदा समाधान लाया था और हम विजुअल स्टूडियो द्वारा बनाई गई ऑटो-जेनरेट की गई .cs फ़ाइलों को ट्रैक नहीं करते हैं। (प्रत्येक फीचर फ़ाइल के लिए एक ही नाम के साथ एक .cs फ़ाइल है)

संबंधित .cs फ़ाइलों के बिना समाधान खोलना वास्तव में मुझे बाध्य तरीकों पर नेविगेट करने की इजाजत देता है, इसलिए ऐसा लगता है जैसे specflow ठीक से तारित किया गया था, लेकिन मैं टेस्ट एक्सप्लोरर में परीक्षण नाम देखने में सक्षम नहीं था।

इस समस्या के लिए बस परियोजना से फीचर फाइलों को छोड़कर और फिर उन्हें फिर से शामिल करने के लिए, मजबूर वीएस इन ऑटो जेनरेट की गई कोडबेइंड फाइलों को पुन: उत्पन्न करने के लिए मजबूर कर दिया।

उसके बाद, मैं परीक्षण एक्सप्लोरर में परीक्षण देखने में सक्षम था।


मेरे हाल के अनुभव में उपर्युक्त सभी काम नहीं कर पाए। मेरी परीक्षा विधि

public async void ListCaseReplace() { ... }

दिखाया नहीं जा रहा था लेकिन जुर्माना संकलित। जब मैंने async कीवर्ड को टेस्ट एक्सप्लोरर में दिखाया गया परीक्षण हटा दिया। यह bacause async void एक 'आग और भूल' विधि है। विधि async Task और आपको अपना परीक्षण वापस मिल जाएगा!

इसके अलावा, टेस्ट प्रोजेक्ट की कॉन्फ़िगरेशन "बिल्ड" पर सेट नहीं होने से परीक्षणों को प्रदर्शित होने से भी रोका जा सकता है। कॉन्फ़िगरेशन प्रबंधक> बनाने के लिए अपने टेस्ट की जांच करें।


यह उन लोगों की मदद करने के लिए है जो ओपी के प्रश्न का उत्तर देने के बजाय यहां खत्म होते हैं:

दृश्य स्टूडियो को बंद करने और फिर से खोलने का प्रयास करें, मेरे लिए चाल है।

उम्मीद है कि यह किसी की मदद करता है।


यह कभी-कभी काम करता है।

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

टेस्ट -> टेस्ट सेटिंग्स -> डिफ़ॉल्ट प्रोसेसर आर्किटेक्चर -> x86 / x64

जैसा कि अन्य पदों में उल्लिखित है, सुनिश्चित करें कि आपके पास टेस्ट एक्सप्लोरर विंडो खुलती है। टेस्ट -> विंडोज़ -> टेस्ट एक्सप्लोरर

फिर परीक्षण के साथ परियोजना का पुनर्निर्माण टेस्ट एक्सप्लोरर में परीक्षणों को प्रकट करना चाहिए।

संपादित करें: जैसा कि Ourjamie नीचे बताया, एक स्वच्छ निर्माण कर भी मदद कर सकते हैं। इसके अलावा, यहां एक और चीज है जिसका मुझे सामना करना पड़ा:

समाधान के तहत बनाए गए एक नए परीक्षण प्रोजेक्ट के लिए कॉन्फ़िगरेशन मैनेजर में "बिल्ड" चेकबॉक्स को अनचाहे किया गया था।

बिल्ड -> कॉन्फ़िगरेशन प्रबंधक पर जाएं। सुनिश्चित करें कि आपकी टेस्ट प्रोजेक्ट ने सभी समाधान कॉन्फ़िगरेशन और समाधान प्लेटफ़ॉर्म के लिए चेकबॉक्स चेक किया है।


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


वीएस2013 अल्टीमेट में नेटवर्क शेयर पर समाधान खोलने की कोशिश करते समय मैंने एक ही समस्या को मारा।

मैंने चालू करके समस्या को सही किया

नियंत्रण कक्ष -> इंटरनेट विकल्प -> "सुरक्षा" टैब -> "स्थानीय इंट्रानेट" पर क्लिक करें, साइट पर क्लिक करें और सुनिश्चित करें कि "स्वचालित रूप से इंट्रानेट नेटवर्क का पता लगाएं" का पता लगाया गया है।






unit-testing