2012-08-30 68 views
14

在一些解決方案中,我們有ASP.NET/WCF Web項目和一個測試項目。一些測試針對ASP.NET開發Web服務器使用http://localhost:port/...運行。在VS2010中,在調試ASP.NET/WCF Web項目時,測試運行器可以運行測試,並且如果Web項目中有任何斷點,則調試器會中斷執行。這似乎已被禁用/在VS2012中刪除。如何在調試Web項目的同時運行測試?

當調試ASP.NET/WCF Web項目(通過按F5或通過附加進程啓動)時,TEST-> Run和TEST-> Debug子菜單都被禁用。在VS2010中,只有Test-> Debug子菜單處於禁用狀態,而Test-> Run子菜單仍處於啓用狀態。我們使用這種方式輕鬆地調試Web項目中的服務。任何方式來恢復或解決該行爲?

Debugging While Running on ASP.NET Development Server似乎不適用於VS2012或至少我不能得到它的工作。

+0

@羅伯特,我認爲標籤不應該包含在問題中。另外,問題是關於「如何在web項目正在調試的同時運行測試」而不是運行斷點。在VS2012中,測試根本無法運行。 –

+0

這就是爲什麼我問這個問題。如果調試器正在運行並且正在調試Web項目,那麼我們無法運行測試。 TEST-> Run和TEST-> Debug下的所有菜單均被禁用。 VS2010中並非如此。我們嘗試了多臺機器和多個項目(轉換爲VS2012)。 –

+0

製作標題時,我會考慮它在Google中的外觀。由於最流行的標籤(本例中爲ASP.NET)會附加到Google標題的開頭,因此在標題的開頭添加標籤根本沒有意義。然而,如果標籤能夠成爲Google的一個更好的標題,那麼標籤可以「自然」出現在標題的中間或結尾處。 –

回答

2

我最後寫了一個快速addon。事實證明,與VS2012一樣,VS2012測試運行器也可以在Web項目正在調試時運行測試。這只是菜單選項被禁用。

+0

這是一個好主意。不幸的是,當我嘗試你的插件它無法加載錯誤號碼80004005.這是與VS 2012旗艦版,更新2. – JohnnyHK

+0

感謝您的努力。我按照這些說明(https://stackoverflow.com/questions/21662223/cant-integrate-visual-studio-2013-with-an-add-in)將它在VS 2013社區中運行。對我來說,沒有錯誤消息,但VS使用「在上下文中運行所有測試」選項時要求停止調試,並且不運行測試。 – AronVanAmmers

6

如果你有WCF的應用和測試,要求他們的解決方案,可以通過調用調試所有測試調試選定的測試沒有以前開始調試(F5)調試使用測試的應用程序。

配置您的解決方案多啓動項目一切行動組,並配置您的WCF應用程序的啓動操作不要打開一個頁面。等待請求。如果您選擇調試所有測試調試選擇的測試,使用此配置開發Web服務器將啓動。

+0

這也適用於ASP.NET MVC網站。 –

11

在VS2013中,情況是相同的:在運行/調試項目時,運行/調試測試的選項變灰。這對於Web API這樣的項目尤其令人遺憾,在這些項目中,通過HTTP調用API的測試(與創建Controller類的實例和規避任何網絡流量相反)非常有用,因爲它們更接近API的最終用戶將體驗。

作爲一種解決方法,您可以在單獨的VS實例中打開相同的解決方案,也可以使用相同的項目創建單獨的解決方案,專門用於測試。在第一個VS實例中調試,在第二個實例中運行測試。

0

這是一個解決方法,用於調試單個單元測試以及Web服務器。它依賴於Debugging Multiple Processes(不包括MSVS Express):

  1. 啓動web服務器,記下它的進程ID。
  2. 在測試的第一行放置一個斷點
  3. 開始調試單元測試,等待它停在斷點處。
  4. 調試 - >附加到進程,進入Web服務器進程ID

備用方式爲整個項目(包括測試我假設):

右鍵單擊該解決方案 - >屬性 - >多個啓動項目。定義,然後只是F5(調試)。

相關問題