0

我已經爲我的web項目創建了單元測試,但我遇到了一個錯誤,即測試被忽略,Visual Studio 2012運行我的本地主機。我無法使用本地主機來運行我的測試,因爲有很多java資源和覆蓋圖不顯示。從本質上講,這是指您測試正確界面的UI測試。Selenium webdriver UI測試over-riden由LocalHost

我在一個空白項目中使用的代碼 - 完美運行並完成測試,但沒有問題,但由於我需要將其包含到我的Web項目中,我需要一種方法來停止Visual Studio運行本地主機並讓它執行控制檯應用程序測試,以便我的硒webdriver可以正確運行測試。

使用:的Visual Studio 2012 硒(webdriver的) 鉻驅動程序(最新版本) C#.NET

示例代碼:

IWebDriver _driver; 

     ChromeOptions options = new ChromeOptions(); 
     options.AddArgument("--start-maximized"); 

     _driver = new ChromeDriver(options); 
     _driver.Url = "http://theURLimTesting.com/"; 
     var verificationErrors = new StringBuilder(); 


     _driver.Navigate().GoToUrl("http://theURLimTesting.com/"); 
      _driver.FindElement(By.Id("Username")).Clear(); 

如果有人可以幫助我,並提供解決方案,以如何在不從項目中排除它們的情況下運行這些測試,而無需創建代理 - 我將非常感激,因爲我非常適合新手。

更新:作爲@mutt的回答幫助引導我走向正確的方向與能夠解決我的問題我標記答案是正確的 - 我已設法配置錯誤,並創建一個工作,並調整一些設置,以得到這個工作,現在我可以正確運行Web應用程序內部的所有測試,並且它們都可以正常運行,並在完成時執行和關閉自己。

+0

你有你的web項目編譯和註冊通過IIS/Apache /等.. 。? – mutt 2014-08-27 10:39:47

+0

@mutt是啊,它是通過IIS – harrison 2014-08-27 11:14:48

回答

0

將您的單元測試從Web項目中分離出來,它應該可以工作。既然你把它們放在一起,你的web應用程序可能有一個默認的起始頁面,所以當你「玩」它將加載,並且VS的範圍是在IIS Express上運行的瀏覽器,而不是常規瀏覽器。

就我個人而言,由於Selenium正在瀏覽引用瀏覽器的驅動程序包,所以我一直認爲它仍然可以工作,但我不確定當它運行webapp時,所有VS都在做什麼。如果你想在控制檯中使用它,那麼將所有的單元測試移到控制檯項目中,並且它們仍然可以在WebApp上工作,因爲它們將會觸及服務器版本而不是本地運行的項目。

更新: 它看起來像是進程綁定。所以Selenium和Visual Studio共享相同的過程。 VS2008 debugging with firefox as default browser - how to make the debugger stop/close on exit?

Update2: 它看起來像你應該能夠確定過程是否被利用。那麼問題是你可以在你的單元測試腳本中殺死它,以便它將被迫創建一個新的... Programmatically determine if code is running under IIS Express

+0

所有註冊謝謝,我提到,當他們沒有在網絡應用程序,他們的功能正常我遇到的問題是我需要他們在網絡應用程序,但我也需要能夠讓他們繼承人自己在Web應用程序中的項目,因爲它們是以傳統方式命名的,但除此之外,你的回答是正確的,我只是想知道爲什麼我可以阻止VS開始使用硒驅動程序。 @mutt – harrison 2014-08-27 12:04:43

+0

哦,有你...我錯過了。我更新了一個解釋......有點老,但我認爲這是一個問題,它不能解決問題。如果我找到其他東西,我會再次更新。 – mutt 2014-08-27 12:12:58