2010-11-05 15 views
32

मैं इकाई परीक्षण के माध्यम से डीबग या चरण में सक्षम नहीं हूं।यूनिट परीक्षणों में कोड के माध्यम से कदम और डिबगिंग

यहाँ मेरी नमूना परीक्षण कोड है ...

using System; 
using System.Text; 
using System.Collections.Generic; 
using System.Linq; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using DomainModel.Entities; 
using DomainModel.Abstract; 
using WebUI.Controllers; 

namespace Tests 
{ 
    [TestClass] 
    public class PeopleControllerTests 
    { 

     static IPeopleRepository MockPeopleRepository(params Person[] people) 
     { 
      var mockPeopleRepos = new Moq.Mock<IPeopleRepository>(); 
      mockPeopleRepos.Setup(x => x.People).Returns(people.AsQueryable()); 
      return mockPeopleRepos.Object; 
     } 

     [TestMethod] 

     public void Count_Of_People() 
     { 
      IPeopleRepository repository = MockPeopleRepository(
       new Person { Age = 31, Gender = "Male", Name = "Tom" }, 
       new Person { Age = 25, Gender = "Female", Name = "Sally" }, 
       new Person { Age = 18, Gender = "Female", Name = "John" } 
       ); 

      PeopleController controller = new PeopleController(repository); 
      var people = controller.List().ViewData.Model; 
      var peoplelist = people as IList<Person>; 
      Assert.AreEqual(3, peoplelist.Count); 
     } 

    } 
} 
+3

आप लाइन के दाहिनी ओर या राइट क्लिक ब्रेकप्वाइंट के लिए क्लिक करने के अलावा क्या मतलब है? –

उत्तर

64

Microsoft.VisualStudio.TestTools.UnitTesting उपयोग करते समय, वी.एस. 2010 के मुख्य मेनू में 'टेस्ट' पर जाएँ, सबमेनू क्लिक करें 'डिबग' -> 'वर्तमान संदर्भ में परीक्षण'।

परीक्षण कोड पर राइट-क्लिक करें और 'रन टेस्ट' चुनने से डीबगर शुरू नहीं होगा, यहां तक ​​कि जब मोड = डीबग भी नहीं होगा।

+4

'वीएस2012' में हम एक विशिष्ट टेस्ट विधि में 'ब्रेक प्वाइंट' डाल कर चरणबद्ध तरीके से डीबग चरण कर सकते हैं। 'मेनू> टेस्ट> डीबग> चयनित टेस्ट या सभी टेस्ट' पर जाने के बाद। नहीं, आपको डीबग करने में सक्षम होना चाहिए। बस एक अपडेट :) – RajeshKdev

+2

@ आरजेके की टिप्पणी के अलावा, यह वीएस 2013 (या 'Ctrl + T') का प्रयोग करने के लिए भी एक ही कदम है –

+0

^वीएस 2015 –

0

एक विकल्प TestDriven.net जो यह आसान प्रमुख इकाई परीक्षण .net चौखटे में से किसी पर इकाई परीक्षण चलाने के लिए बनाता है (nunit, XUnit, वी.एस. स्थापित करने के लिए है उपकरण, आदि)। एक बार इंस्टॉल हो जाने पर आप फ़ंक्शन पर राइट क्लिक कर सकते हैं और टेस्ट विद -> डीबगर चुन सकते हैं।

10

हाँ आप कर सकते हैं, धन्यवाद :)

वास्तव में उन्हें आप हालांकि डीबग मोड में अपनी इकाई परीक्षण चलाने की आवश्यकता पर तोड़ने के लिए।

+5

मेनू> टेस्ट> डीबग> वर्तमान संदर्भ में टेस्ट (Ctrl + R, VS 2010 में Ctrl + T) – Jonathan

+0

इस उत्तर में पर्याप्त जानकारी नहीं है। क्या आप विशिष्ट निर्देश प्रदान कर सकते हैं? क्या यह अन्य उत्तरों से अलग है? – DaveInCaz

3

आप nunit चल रहे थे, तो उस इतना आसान था:

  1. भागो nunit और उस में अपने वांछित विधानसभा खोलें।
  2. ओपन दृश्य स्टूडियो -> डीबग -> प्रक्रिया को संलग्न ...
  3. nunit
  4. प्रत्येक पंक्ति आप चाहते हैं को तोड़ने बिंदु के प्रक्रिया का चयन करें।
  5. nunit और रन परीक्षण
  6. आपको लगता है कि निष्पादन देखेंगे पर वापस जाएँ ब्रेक अंक पर बंद हो जाता
+1

धन्यवाद! मेरे लिए nunit-agent.exe। – CaRDiaK

3

हो सकता है कि बस परीक्षण डिबगिंग और breakpoints की स्थापना ईकाई परीक्षण के कुछ प्रकार में काम करता है लेकिन यदि आप डिबग नहीं है जैसे वेब सेवा।

एक वेब सेवा (एक यूनिट परीक्षण के अंदर तोड़) डिबग करने के लिए आप इस कोड डालने के लिए है:

System.Diagnostics.Debugger.Break(); 

यह कह एप्लिकेशन द्वारा कार्य बंद एक पॉपअप दिखा देंगे और आप इसे डिबग करने के लिए चुन सकते हैं।

अधिक यहाँ: http://msdn.microsoft.com/en-us/library/ms243172.aspx#DebuggingOnCassini

3

एक अन्य समाधान ...

आप चलाने के लिए और डिबगर

पहली पंक्ति अपने परीक्षण (शायद परीक्षण वर्ग निर्माता में) में मार डाला

System.Diagnostics.Debugger.Launch(); 
पर इस लाइन सेट साथ जोड़ने की आवश्यकता

तब जब विंडो खुलती है, तो दृश्य स्टडीओ

+2

आपने 4 साल की पुरानी पोस्ट का जवाब ऐसे उत्तर के साथ क्यों दिया जो मूल रूप से किसी अन्य उत्तर के समान है? –

9

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

enter image description here

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