我为我的网络项目创建了单元测试,但是我遇到了一个错误,即测试被忽略,而Visual Studio 2012正在运行我的localhost。我不能使用localhost来运行我的测试,因为有很多java资源和覆盖没有显示。从本质上讲,测试正确界面的UI测试就是重点。
我在一个空白项目中使用的代码 - 完美运行并完成测试没有任何问题,但由于我需要将其包含在我的web项目中,我需要一种方法来阻止Visual Studio运行localhost并让它执行控制台应用程序测试,以便我的selenium webdriver可以正常运行测试。
使用:Visual Studio 2012 Selenium(webdriver) chrome driver(最新版本) 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 :(得分:0)
将您的单元测试与Web项目分开,它应该可以正常工作。由于你将它们放在一起,你的webapp可能有一个默认的起始页面,所以当你"播放"它会加载它,VS的范围是在IIS Express上运行的浏览器而不是常规浏览器。
就我个人而言,我认为它仍然有用,因为Selenium正在使用引用浏览器的驱动程序包,但我不确定VS在运行webapp时所做的事情。如果您希望它与控制台一起使用,那么将所有单元测试移至控制台项目,它们仍应在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