2013-11-28 36 views
3

环境:ASP.NET MVC4时,Visual Studio 2013如何启动我的ASP.NET MVC应用程序中的编码的UI测试

我想要写一个测试我的MVC应用程序编码的UI测试。测试需要做的第一件事是启动我的应用程序(就像我按Ctrl-F5一样)。这意味着编码的UI测试需要:

  1. 启动IIS Express来托管我的应用程序。

  2. 导航到http://localhost:xxxx,其中xxxx是我的应用程序的当前端口号,IIS Express作为托管

我会假设有一些神奇的烤成CUIT框架,可以很容易地运行当前应用程序(好像我按Ctrl-F5)作为我的测试中的“步骤”,但我还没有找到它。

因此,要解决项目1,我已经找到了NuGet软件包Trackyon CUIT Helpers

为了解决第2项,我知道我可以使用此代码来发动我的网站在一个新的浏览器窗口:

BrowserWindow.Launch(new System.Uri("http://localhost:4892")); 

但我不想硬编码的端口号。 如何以编程方式查找我的URL?或者更一般地说,在Coded UI测试期间,启动由IIS Express托管的浏览器窗口中运行MVC应用程序的“正确”方式是什么?

回答

0

我不确定你为什么要这么做,如果你解释为什么你想这样做,它会有所帮助。

我建议您设置某种持续集成过程,它会自动部署最新版本的Web应用程序,然后自动运行测试。我有一个专用的IIS服务器,它托管着每个Web应用程序的最新版本,它是由TeamCity自动构建的,当对版本控制提交更改并随后使用Web Deploy部署到IIS服务器时,它会自动构建测试套装并运行它针对最新版本的Web应用程序。

这个更好的原因之一是CUIT中的一部分搜索条件通常是URI,但是当然您可以更改它们,但是如果测试版本正在测试已发布的页面版本,你越接近真实的环境越好。

+0

我想这样做,因为我花了30年的时间在Big Aerospace开发实时仿真软件,IT团队缠绕着我,开发一个复杂的网站的单人商店。我花了去年的时间学习了一种全新的网页开发技术字母表,我可能会指出,这种技术的发展速度比我能采用的还要快。在我的头脑简单的“开发/测试/部署”大脑中,在我的开发环境中运行UI测试似乎是合理的,就像我运行单元测试一样。我不急于挖掘另一种技术(CI)。叹息... –

+0

这很明显,为什么Bob.at.SBS想这样做。在他的开发机器上编码时运行测试,无需提交更改或设置自动构建 – n00b

1

我知道你问的是“好像我按Ctrl-F5”那么为什么不呢?

编码的UI可以做CTL F5这样:

Keyboard.SendKeys("^{F5}"); 
+0

感谢SendKeys代码示例!当然,它只适用于VS IDE有焦点的情况;如果我有多个测试,并且在每次测试开始时使用它,我只能确信它会在第一次测试开始时工作(假设我手动与VS IDE交互以开始测试)。当第一次测试完成时,不保证IDE将重新获得焦点... –

+0

您可以像在测试中的应用程序一样与IDE交互,并直接设置焦点,或者单击窗口中的。 – yonitdm

0

我把在“服务定位器”模式,其在从配置文件应用程序的所有服务提供URL。 然后团队中的每个开发人员都可以用本地版本替换全球提供的服务。 当你的机器上运行测试时,他们会看你的IIS Express

相关问题