2009-08-05 13 views
10

Trong NUnit, tôi đã sử dụng để viết các câu lệnh Trace trong bài kiểm tra và hiển thị chúng trong tab dấu vết của NUnit gui.Dấu vết trong Kiểm tra Visual Studio (Di chuyển từ NUnit)

Trên một dự án mới, tôi đang chuyển sang phần tích hợp trong Kiểm thử đơn vị trong Visual Studio Professional Addition, mà tôi tin là một giao diện cho mstest.exe.

Mã kiểm tra:

<TestMethod()> 
Public Sub TestPagesInheritFromBasePage() 
    Dim webUI As Assembly = Assembly.GetAssembly(GetType(WebUI.BasePage)) 
    Dim badPages As New List(Of String) 
    For Each t As Type In webUI.GetTypes() 
     Debug.Write(t.Name + ", ") 
     Trace.Write(t.Name + ", ") 
     If t.BaseType Is GetType(System.Web.UI.Page) Then badPages.Add(t.Name) 
    Next 
    Debug.Flush() 
    Trace.Flush() 
    If badPages.Count > 0 Then 
     Assert.Fail("{0}: do not inheriting from BasePage", String.Join(", ", badPages.ToArray())) 
    End If 
End Sub 

Tôi nhận được một thất bại, vì vậy tôi biết Debug.Write và Trace.Write đường được thực hiện.

Tôi đã đọc qua các tài liệu MSDN trên viết những bài kiểm tra, và tôi có thể xem các dấu vết đầu ra nếu thực hiện tại cửa sổ dòng lệnh, thông qua:

mstest.exe /testcontainer:mydll.dll /detail:debugtrace 

Tuy nhiên, tôi không thể tìm thấy dấu vết đầu ra khi thực hiện các bài kiểm tra trực tiếp trong studio trực quan. Có phương pháp ưu tiên nào khác để xuất thông tin trong khi thử nghiệm đơn vị hay không, tôi có thiếu tùy chọn để xem thông tin theo dõi trong studio trực quan không?

Trả lời: Cả hai câu trả lời dưới đây (Console.Write và Debug.Write) làm việc, kết quả là trong thử nghiệm kết quả chi tiết (TestResult Pane ở phía dưới, nhấp chuột phải vào trên kết quả thử nghiệm và đi đến TestResultDetails) . Ngoài ra, tôi thiết lập các hằng số Debug và Trace trong các thuộc tính của dự án.

Trả lời

10

Thông thường tôi sử dụng phương pháp này để in một cái gì đó trong cửa sổ đầu ra của visual studio:

System.Diagnostics.Debug.WriteLine("Message"); 
+1

nó vẫn không hiển thị ở đầu ra. Tôi đã thử cả hai chạy thử nghiệm và gỡ lỗi thông qua các thử nghiệm. Tôi đang gọi Debug.Flush(), và có cửa sổ đầu ra được thiết lập để hiển thị đầu ra gỡ lỗi. Bất kỳ ý tưởng những gì tôi đang thiếu ở đây? –

+0

nhận ngay bây giờ, cảm ơn! –

10

Hãy thử sử dụng Console.WriteLine() để thay thế. Tôi sử dụng nó trong các bài kiểm tra đơn vị của tôi và nó hoạt động tốt - nó hiển thị văn bản trong cửa sổ đầu ra kết quả kiểm tra đơn vị.

+0

điều này cũng làm việc, cảm ơn! –

2

Để xem kết quả nhấp đúp vào thử nghiệm trong "Kết quả thử nghiệm" cửa sổ (Truy cập từ menu chính "thử nghiệm" >> cửa sổ trình đơn >> Kết quả Test)

1

Tất cả các câu trả lời trước đó là thực sự đúng nhưng yêu cầu nhiều hoặc ít nhấp chuột hơn.

Nếu bạn muốn nhìn thấy đầu ra ngay mà không cần một nhấp chuột thêm, chỉ cần thêm các cột gỡ lỗi vết và/hoặc Output (stdout) (cho dù bạn đang sử dụng Debug.Write hoặc Console.Write) đến ô kiểm tra Kết quả kiểm tra bằng cách nhấp chuột phải vào kết quả kiểm tra và sau đó nhấp vào 'Thêm/xóa cột'.