2016-01-31 72 views
13

在VS2015中運行單元測試時,我有很長的延遲(大約1分鐘!甚至更多)。當運行一次測試時,我會看到「測試資源管理器」頂部的進度條,它會持續大約一分鐘,然後獲得測試結果。報告的測試運行時間與預期的一樣 - 非常小,幾毫秒。在VS2015中運行C#單元測試時有很長的延遲

我的問題是 - 我該如何調試?在測試實際開始運行之前,如何在這一分鐘裏看到發生了什麼?

+0

您不清楚您是否真的正在調試測試,並且一分鐘後您的第一個斷點或您只在運行測試。在第二種情況下進行調試時,您需要斷點和調試運行測試;) – vinjenzo

+0

您是否正在運行通用Windows應用程序單元測試? –

+2

我在隨機基礎上遇到類似的問題。這似乎是一個錯誤。大多數情況下,測試運行速度非常快(以毫秒爲單位),但每過一段時間,它似乎都會掛起一些東西。如果我正在運行1次測試或50次,則無關緊要。只需一個很大的停頓,有時候等待測試運行開始的幾分鐘。然後一旦測試開始運行,它們很快。通常重新啓動Visual Studio將清除它...一段時間。很煩人。仍然發生在更新2中。 –

回答

2

一分鐘相當長的時間什麼也沒有將發生。在運行任何測試之前,有很多啓動處理必須發生(例如,需要加載所有程序集及其依賴關係)。如果您正在運行單個測試或運行套件中的所有測試,則此命中大致相同。

如果您查看「Tests」輸出窗口,您將會更好地瞭解實際發生的情況以及運行測試所花費的實際時間。例如在我的,運行一個測試示出了類似的開銷來運行49個測試..

==========運行測試完成:1個運行(0:00:01.0416253)=== =======

==========運行測試完成:49運行(0:00:01.9156121)==========

有很多東西可以減慢程序集加載,比如靜態構造函數。我傾向於通過創建一個沒有依賴關係的新測試項目來驗證它不會出現相同的長延遲問題,以便您知道它不僅僅是您的機器。然後,我會添加現有測試項目的依賴項,每次只添加一個依賴項,以查看是否添加特定的依賴項會觸發延遲...然後,我會查看該項目以查看是否有任何事情發生,如靜態嘗試連接到數據庫/建立網絡連接的構造函數。

它也可能是值得嘗試調試你的測試,但確保你有斷開當異常被拋出打開(如果它是像失敗的數據庫連接,導致減速有一個很好的機會作爲該過程的一部分可能會引發異常)。

相關問題