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




15 Answers

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

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

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

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

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

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

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

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

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

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

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

मेरे पास कुछ परीक्षण हैं जो 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");
        }
    }
}

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




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

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

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

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

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

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

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

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




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

public async void ListCaseReplace() { ... }

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

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




मुझे मिली एक समस्या यह है कि यदि परीक्षण नेटवर्क ड्राइव / नेटवर्क स्थान / साझा ड्राइव से चल रहा है तो परीक्षण टेस्ट एक्सप्लोरर में कुछ नहीं मिलता है (कुछ भी नहीं दिखाता है)

आप पर्यावरण चर जोड़कर इसे ठीक कर सकते हैं।

COMPLUS_LoadFromRemoteSources और इसके मान को 1 पर सेट करें




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

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

public TestContext TestContext
{
    get;
    set;
}

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




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

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

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




शीर्ष पर मेनू बार से ...

टेस्ट -> रन -> सभी टेस्ट

आप टेस्ट एक्सप्लोरर (टेस्ट -> विंडोज़ -> टेस्ट एक्सप्लोरर) से सभी परीक्षण भी देख सकते हैं।

वीएस 2012 के साथ, यदि आप कुछ भी याद करते हैं तो इसे शीर्ष दाएं (Ctrl + Q) "टेस्ट" पर त्वरित लॉन्च बार का उपयोग करके खोज करने का प्रयास करें।

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




मेरे मामले में यह कुछ और था। मैंने एक पैकेज स्थापित किया था और फिर इसे अनइंस्टॉल कर दिया था और पहले के संस्करण को पुनर्स्थापित कर दिया था। उसने एक अवशिष्ट configuration/runtime/asssemblyBinding/dependencyIdentity मेरे app.config में रीडायरेक्टिंग छोड़ दिया। मुझे इसे सही करना पड़ा। मैंने Output विंडो को देखकर और ड्रॉप डाउन में " Tests " चुनकर इसे समझ लिया। त्रुटि संदेश वहां था। यह दर्द था ... मुझे उम्मीद है कि यह किसी और की मदद करेगा।




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




मैंने वीएस 2012 को नवीनतम अपडेट में अपडेट किया है। यानी विजुअल स्टूडियो अपडेट 3. यह मेरे लिए मुद्दा तय करता है।




माइक्रोसॉफ्ट विजुअल स्टूडियो 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

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




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

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

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




किसी भी असेंबली के लिए संदर्भित असेंबली जांचें जिनके पास "स्थानीय कॉपी करें" सेट को "गलत" पर सेट किया जा सकता है।

यदि आपकी टेस्ट प्रोजेक्ट इसके स्वयं के फ़ोल्डर (उदाहरण के लिए बिन / डीबग) बनाता है और प्रोजेक्ट किसी अन्य असेंबली पर निर्भर करता है और संदर्भ सूची में उन असेंबली में से एक को चिह्नित किया जाता है तो स्थानीय = "गलत" कॉपी करें, असेंबली लापता निर्भरताओं के कारण लोड नहीं हो सकती है और निर्माण के बाद आपके परीक्षण लोड नहीं होंगे।




यहां किसी भी समाधान ने मेरी मदद नहीं की। परीक्षण एक समाधान के लिए नहीं खोजे जाएंगे, जबकि एक ही परियोजना के संदर्भ में एक और समाधान ठीक काम करता है। मैंने अंततः समाधान नाम.v12.suo फ़ाइल को हटाकर हल किया।




टेस्ट एसिंक तरीकों को पसंद नहीं करते हैं। उदाहरण के लिए:

    [TestMethod]
    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

ऐसा करने के बाद:

    [TestMethod]
    public void TestAuth()
    {
        TestMethod1();
    }

    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

यह परीक्षण देखा।




Related

c# .net visual-studio unit-testing