我使用ReSharper測試運行器和xUnitContrib resharper插件使用xUnit。使用ReSharper,如何在長時間運行的單元測試中顯示調試輸出?
當我有一個長期運行的測試,我想能夠輸出一些進度指標到單元測試輸出窗口。
我試過Debug.WriteLines
,Trace.WriteLine
和Console.WriteLine
。所有這些都具有相同的行爲 - 在測試完成之前,輸出窗口中沒有任何內容顯示。
例如:
[Fact]
public void Test()
{
Debug.WriteLine("A");
Trace.WriteLine("B");
Console.WriteLine("C");
Thread.Sleep(10000);
}
試驗表明,直到經過10秒鐘和測試完成沒有輸出。我該如何獲得產出?
更新1
我也試圖與MSTest的和NUnit。 NUnit是唯一一個顯示輸出的方式。
MSTest和XUnit在測試完成之前不返回任何輸出。奇怪的是,雖然的xUnit和NUnit測試輸出看起來是這樣的:
A
B
C
的MSTest的輸出是這樣的:
C
Debug Trace:
A
B
鑑於所有這些變化,我認爲答案是,它由測試跑步者實施決定如何以及何時輸出。有誰知道是否可以配置XUnit測試運行器?
更新2
我想這一定是在xUnitContrib缺乏。發佈到他們的CodePlex issue tracker。
的Debug.WriteLine()的作品完美當我處於調試模式時適合我。所以如果你想以一般的方式登錄,我建議brenton的回答 – derape 2013-02-26 15:23:07
@derape - 不,它不適用於xunit。測試完成後纔會顯示輸出。 – 2013-02-26 16:44:38
我明白了,我還沒有玩過XUnit - 只有NUnit。並且NUnit日誌記錄可以在調試線程中工作...... – brenton 2013-02-26 16:54:59