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