【问题标题】:Starting a web application with coded UI tests in VS 2010在 VS 2010 中使用编码的 UI 测试启动 Web 应用程序
【发布时间】:2023-04-09 22:43:01
【问题描述】:

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

我试过了

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

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

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

有什么想法吗?

谢谢

【问题讨论】:

  • 知道如何从测试代码中获取 URL 也很好。

标签: visual-studio-2010 web-applications coded-ui-tests


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多