2011-01-28 28 views
7

Có cách nào để ngắt trình gỡ lỗi khi xác nhận sai và chạy ứng dụng bằng trình gỡ lỗi Visual Studio hay không. Trước đó khi tôi gỡ lỗi ứng dụng Windows, tôi sẽ nhận được ngoại lệ và trình gỡ lỗi sẽ bị hỏng, nhưng giờ đây trên Thiết bị thông minh, cửa sổ không xác nhận được hiển thị với dấu vết ngăn xếp, nhưng tôi cũng muốn xem các giá trị biến số, v.v.Phá vỡ trình sửa lỗi trên xác nhận không thành công

Trả lời

11

Ngớ ngẩn tôi, giải pháp rất đơn giản. Khi cửa sổ hiện ra, nhấn tạm dừng trong trình gỡ rối :)

+2

Tôi tự hỏi liệu có cách nào để thực hiện điều này tự động hay không. – Superbest

+1

@Superbest - Có. Xem câu trả lời của tôi. –

+0

Khi gỡ lỗi một thử nghiệm đơn vị bằng cách sử dụng Visual Studio, Debug.Assert thất bại không bật lên một cửa sổ, nó giống như khung kiểm tra đã loại bỏ tính năng này. (Tôi đang sử dụng VS 2013 Pro.) – yoyo

4

Ngoài giải pháp Vinay, bạn có thể bắt đầu gỡ rối cho một quá trình cụ thể bằng cách gọi

Debugger.Break

Trong trường hợp của bạn, bạn có thể làm điều đó mỗi khi người nghe nhận được một thông báo lỗi.

8

Không chắc chắn về VS 2008, nhưng ít nhất là 2010 và sau đó, bạn có thể vào Debug/Exceptions (Ctrl-Alt-E). Nhấp vào nút "Thêm", chọn "Ngoại lệ thời gian chạy ngoại ngữ" và nhập:

Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException 

và nhấn "OK". Nó sẽ xuất hiện trong danh sách, đảm bảo bạn đánh dấu vào hộp kiểm trong cột "Thrown". Bây giờ bạn sẽ nhận được một break trên bất kỳ thất bại khẳng định.

+0

Mẹo hay, nhưng nếu tôi muốn phá vỡ System.Diagnostics.Debug.Assert trong khi gỡ lỗi một bài kiểm tra đơn vị thì sao? – yoyo

+0

Tìm thấy một giải pháp - sử dụng [TestInitialize] để thêm một System.Diagnostics.TraceListener tùy chỉnh mà ném một UnitTesting.AssertFailedException trong trường hợp lỗi Debug.Assert. – yoyo

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