2012-07-18 68 views
4

我正在爲我寫的一些代碼(在Visual Studio 2012中)編寫一個相當大的測試套件。大多數情況下,運行單元測試並不是什麼大問題。但是,我還包括許多集成測試,這些測試有更多的外部基礎架構依賴性。測試的數量,再加上重新設置測試之間的基礎架構依賴關係,導致整個套件的測試運行時間相當長(目前大約爲45分鐘)。如何增加Visual Studio測試的超時時間?

運行測試沒什麼大不了的。單元測試將在辦理登機手續時進行,每晚進行集成測試。然而,當我試圖分析所有測試的代碼覆蓋率時,我遇到了一個問題。沒有代碼覆蓋率結果創建,並在輸出窗口說以下內容:

這送往net.pipe請求操作://megara/vstest.discoveryengine/14108沒有收到配置的超時內答覆(00 :30:00)。分配給此操作的時間可能是超時時間的一部分。這可能是因爲該服務仍在處理該操作,或者因爲該服務無法發送回覆消息。請考慮增加操作超時(通過將通道/代理強制轉換爲IContextChannel並設置OperationTimeout屬性),並確保服務能夠連接到客戶端。

我不確定它在哪裏指引我。我沒有使用任何iContextChannel,所有的測試運行都是內置到Visual Studio中的。所以我不知道在哪裏/如何增加任何超時。有人知道我應該看什麼嗎?

+0

您是否在某處使用了命名管道?看起來這是超時。 – 2012-07-18 00:44:17

+0

@PaulPhillips:不明確。無論發生什麼,Visual Studio的測試運行器都具有內置功能。 – David 2012-07-18 00:58:22

回答

6

嘗試更改解決方案.testsettings文件中的超時值。

如果您還沒有,可以使用right-click on solution -> Add New Item -> TestSettings菜單將其添加到解決方案中。在那裏,您可以對單個測試執行超時(默認爲30分鐘),或設置整個測試運行的超時。

目前還不清楚這是否是根本原因,但值得排除。

+0

這讓我經歷了這個特殊的問題,謝謝!儘管Visual Studio看起來還是有點...不可思議......有如此多的測試運行了這麼久。希望產品發佈會更穩定:) – David 2012-07-19 01:05:25

2

舊主題,但也許是一些新的信息:我沒有任何運氣試圖設置.testsettings文件與Visual Studio 2015超時。無論我設置它在測試設置,我的測試會停止30分鐘後。

現在有一個[Timeout(milliseconds)]屬性可以應用於單獨的測試方法。這比測試設置還要好,因爲您可以對單個測試進行微調,以確保它們不會比預期更長。

不幸的是,即使.testsettings文件定義了更高的超時時間,當使用.testsettings文件嘗試將其設置爲高於30分鐘時,我也無法獲得此屬性。低於30分鐘的值得到了尊重,但無論測試設置如何,更高的值仍將在30分鐘時停止。

我刪除.testsettings文件後,超時屬性似乎按預期工作 - 測試將運行到我設置的任何超時。

如果您無法使超時屬性起作用,請嘗試刪除.testsettings。