2011-05-13 57 views
4

我是新來的單元測試,我想看看我的測試結果。如何查看VS2010中測試結果窗口中單元測試的輸出結果?

假設我測試爲特定對象是否存在等:

List<MyObject> actual = target.GetMyObjects(); 
Assert.IsTrue(actual.Count > 0, String.Format("{0} objectes fetched", actual.Count)); 

在「測試結果」在VS2010的窗口,我想看到的結果「的String.Format(」 {0} objectes取「,actual.Count)」。
這可能嗎?

回答

7

找到它:
我在測試結果窗口中添加了列Output(StdOut)

我改變了我的測試方法的末尾這樣:

bool success = actual.Count > 0; 
Assert.IsTrue(success, "No models in the database"); 
if (success) 
{ 
    Console.Write(String.Format("{0} models fetched", actual.Count)); 
} 
0

不,你不想看到輸出。

每個單元測試必須成功或失敗。這使得測試運行者能夠將測試結果聚合成單個失敗/通過測試結果。如果需要人工檢查,單元測試的重點就會丟失 - 必須實現自動化。

+0

是的,我想測試成功。我也希望這個在測試結果窗口中看到這個輸出。我已經將幾個測試分組到了一個有序的測試中,但我部分地希望他們的反饋,比如在這種情況下,測試是否存在項目。 不需要人工檢查,但是如果我看看測試並查看項目數量,那是我想看到的信息 – citronas 2011-05-13 12:46:03

+1

您無法從聲明中獲取輸出,但可以使用控制檯。 WriteLine:http://blogs.msdn.com/b/ploeh/archive/2007/10/06/racetroubleshootingusingconsoleoutputinvsts.aspx – 2011-05-13 13:39:32

+15

**長期運行**,您不希望看到輸出。但是當你編寫測試時,有時輸出可能對理解一個不明顯的原因失敗的測試非常有用。 – 2012-08-09 15:35:30

2

是的,這是可能的。如果測試失敗,那麼您在第二個參數中輸入的任何消息都可能有用。在您的情況下,如果計數值對您調試錯誤很重要,請繼續處理。 即使在調試此信息時稍後自動執行測試失敗或後續測試可能會有所幫助。 http://www.creatingsoftware.net/2010/03/best-practices-for-assert-statements-in.html

+0

那麼,如果測試成功,我如何在「測試結果」窗口中看到我的消息? – citronas 2011-05-13 12:47:08

0

另外,您可以使用

Debug.Print("whatever"); 

然後當你運行測試,你得到的超鏈接「輸出」成功/失敗窗口將顯示您的所有調試消息。

顯然,你需要添加

Using System.Diagnostics; 

大教堂