5

我有一个带有 Web 应用程序和测试项目的解决方案。测试应用程序已对 Web 应用程序的 ui 测试进行了编码。如何在测试执行时启动 Web 应用程序?

我试过了

  • 添加一个 TestSetup 方法以通过 System.Diagnostics.Process 启动 Web 服务器。我不喜欢这个,因为它看起来很笨重,而且编码的 ui 测试不适合继承
  • 在 testsettings 中添加设置脚本以通过批处理文件启动 Web 服务器(相同的命令行)。但是,批处理文件永远不会退出并最终超时。我尝试通过 start 命令启动 Web 服务器,但这不起作用——当您从命令行运行它时效果很好,但不是从 testsettings 设置脚本运行。

我考虑过可能只是在后台运行 IIS 并将其指向特定文件夹。然后将 Web 应用程序部署到该文件夹​​。并让测试项目针对 IIS 进行测试。

不过,这似乎需要做很多工作。必须有一个更简单的方法。我想通过计划或持续集成在几个开发人员的机器上以及 TFS 构建机器上执行此操作。

有什么想法吗?

谢谢

4

2 回答 2

0

我将 Web 项目(在项目属性中)配置为托管在 IIS 上。只需单击 3 或 4 次即可。它将提示创建一个虚拟应用程序。之后,构建并运行您的项目,它将永久托管在 IIS 上。因此,您无需手动启动 Web 服务器即可启动 Coded UI 测试。

于 2010-12-16T02:57:12.240 回答
0

您可以按照 Gerardo Grignoli 的建议进行操作,只需将站点托管在 IIS 中,使其始终处于打开状态。

您也可以只启动 Web 项目(如果您想调试测试,则无需调试),然后运行/调试测试。在您的测试中,只需使用 BrowserWindow.Launch("localhost:appPort/whateverPageToStartOn"); 只需根据您的 IIS express 设置填写端口而不是 appPort。

关于在 TFS 构建机器上运行它,这似乎是一件值得怀疑的事情。您可以从测试实验室测试已部署的站点(开发、测试、产品等)。Microsoft 测试管理器 (MTM) 是可以做到这一点的产品之一。

于 2016-06-06T02:38:03.263 回答