2010-11-05 28 views
32

Tôi đã không thể gỡ lỗi hoặc bước qua thử nghiệm đơn vị.Bước qua và gỡ lỗi mã trong các bài kiểm tra Đơn vị

Đây là mã kiểm tra mẫu của tôi ...

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

Bạn có nghĩa là bên cạnh việc nhấp vào bên phải của dòng hoặc nhấp chuột phải breakpoint -> chèn breakpoint? –

Trả lời

64

Khi sử dụng Microsoft.VisualStudio.TestTools.UnitTesting, vào 'thử nghiệm' trong menu chính của VS 2010, nhấp vào menu con 'Debug' - 'kiểm tra trong bối cảnh hiện nay'>.

Nhấp chuột phải vào mã kiểm tra và chọn 'chạy thử nghiệm' sẽ không bao giờ bắt đầu trình gỡ rối, ngay cả khi chế độ = gỡ lỗi.

+4

Trong 'VS2012' Chúng ta có thể thực hiện gỡ rối từng bước bằng cách đặt một điểm ngắt trong một phương pháp thử nghiệm cụ thể'. Sau đó, đi tới Trình đơn> Kiểm tra> Gỡ lỗi> Thử nghiệm đã chọn hoặc Tất cả thử nghiệm'. Không, bạn có thể gỡ lỗi. Chỉ cần cập nhật :) – RajeshKdev

+2

Ngoài nhận xét của @ RJK, đây cũng là các bước tương tự để thực hiện kiểm tra trong VS 2013 (hoặc sử dụng 'Ctrl + T') –

+0

^Tương tự trong VS 2015 –

0

Một lựa chọn là cài đặt TestDriven.net mà làm cho nó dễ dàng hơn để chạy thử nghiệm đơn vị trên bất kỳ khuôn khổ kiểm tra đơn vị .net lớn (nunit, xUnit, VS công cụ, v.v.) Sau khi cài đặt, bạn có thể nhấp chuột phải vào một chức năng và chọn Test With -> debugger.

10

Có bạn có thể, cảm ơn bạn :)

Để thực sự phá vỡ chúng, bạn cần chạy thử nghiệm đơn vị trong chế độ Gỡ lỗi.

+5

Menu> Kiểm tra> Gỡ lỗi> Thử nghiệm trong ngữ cảnh hiện tại (Ctrl + R, Ctrl + T trong VS 2010) – Jonathan

+0

Câu trả lời này thiếu đủ chi tiết. Bạn có thể cung cấp hướng dẫn cụ thể không? Điều này khác với các câu trả lời khác? – DaveInCaz

3

Nếu bạn đang chạy nunit, đó là dễ dàng như vậy:

  1. Run nunit và mở lắp ráp mong muốn của bạn trong đó.
  2. mở visual studio -> Debug -> Đính kèm để trình ...
  3. Chọn quá trình nunit
  4. điểm break Đặt trong mỗi dòng bạn muốn.
  5. Quay trở lại nunit và chạy thử nghiệm
  6. Bạn sẽ thấy thực hiện mà dừng lại ở điểm break
+1

cảm ơn! nunit-agent.exe cho tôi. – CaRDiaK

3

Có lẽ chỉ đơn giản là gỡ lỗi kiểm tra và thiết lập breakpoint làm việc trong một số loại Unit tests nhưng nó không nếu bạn gỡ lỗi ví dụ Dịch vụ web.

Để gỡ lỗi một Web Service (phá vỡ bên trong một thử nghiệm đơn vị), bạn phải chèn mã này:

System.Diagnostics.Debugger.Break(); 

này sẽ hiển thị một popup nói rằng việc áp dụng ngừng làm việc và bạn có thể chọn để gỡ lỗi nó.

More đây: http://msdn.microsoft.com/en-us/library/ms243172.aspx#DebuggingOnCassini

3

Một giải pháp khác ...

Bạn cần phải chạy và đính kèm các debugger

Đặt dòng này ở dòng đầu tiên thực hiện trong thử nghiệm của bạn (có thể trong constructor lớp thử nghiệm)

System.Diagnostics.Debugger.Launch(); 

sau đó khi cửa sổ gỡ lỗi mở, chọn hình ảnh trực quan

+2

Tại sao bạn trả lời bài đăng cũ 4 năm với câu trả lời cơ bản giống với câu trả lời khác? –

9

Đơn giản hơn nhiều trong VS 2013, trong Test Explorer, hãy chọn các thử nghiệm bạn muốn gỡ lỗi, nhấp chuột phải và chọn kiểm tra lỗi được chọn.

enter image description here

Các vấn đề liên quan