簡體   English   中英

Visual Studio:如何讓我的測試項目啟動它依賴的Web項目

[英]Visual Studio: How can I get my test project to start the web project it depends on

我在VS2012中有一個WCF應用程序。 我們還添加了一個用於進行單元測試的測試項目。 這一切都運作良好

除此之外,我需要添加另一個用於進行系統測試的測試項目,這里的想法是Web服務將啟動,測試項目將觸發Http請求,作為對服務的端到端測試的一種它所處的環境。

我不確定是否實際上有一種方法可以使用內置的visual studio測試。 如果我添加正常的測試類,則運行Web服務的網站無法啟動,並且測試失敗。

我試圖運行的代碼如下:

[TestMethod]
public void CreateLogin()
{
    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri("http://localhost:61886/");          
    HttpResponseMessage response =          
       client.GetAsync("ssoauthenticationservice/createssologin").Result;
}

我覺得我錯過了一些非常明顯的東西。 所以我的問題是:

1)我可以用這種方式測試我的Web服務 - 是否有某種方法可以設置項目屬性,以便首先啟動Web服務,然后運行測試項目

要么:
2)這種方法是完全錯誤的,我真正應該做的是將我的測試放入可執行文件中,我可以在我們部署的任何環境中運行,作為快速的部署后煙霧測試。

你絕對可以使用這種方法測試你的wcf服務。 它的好處取決於你的觀點。 它還取決於您的業務實現是否與后面的.svc代碼緊密結合。

為此,您很可能需要在TestInitialize或ClassInitialize中創建服務主機,並在運行測試后將其拆除。

你可以在這里看到更多關於自托管的信息http://msdn.microsoft.com/en-us/library/ms731758.aspx

還應注意,此方法的工作情況取決於運行單元測試的環境。 它在本地計算機上運行良好,但需要管理員權限。 因此,在持續集成環境中使用此方法似乎是個壞主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM