如何在执行 Selenium Web 驱动程序测试之前自动启动 ASP.NET MVC Web 应用程序?

How to automatically start ASP.NET MVC web app before executing Selenium Web-driver tests?

我想通过 MSTest 使用 selenium 驱动程序测试 ASP.NET MVC 网页。我想我需要启动 ISS 并以某种方式启动 Web 应用程序,获取 Web 应用程序的 url(某个端口的本地主机),然后开始测试。

有很多如何使用 selenium 驱动程序的示例,但它们都适用于已配置的 urls。

我的期望如下:

  1. 任何刚刚使用此 Web 应用程序克隆 git 存储库并在 Visual studio 中打开解决方案的任何人,请单击 运行 所有测试。 Web 应用已启动并执行测试。
  2. 它也应该作为持续集成的一部分(例如与 Teamcity)一起工作,其中这些单元测试是在不同的计算机上使用 MSTest 执行的。
  3. 如果此解决方案也适用于未安装 Visual Studio 的计算机(仅安装 nuget、MSBuild、M​​STest 和各种 SDK),那就太好了。

您应该可以在此处执行一些操作。

1) 如果您有 Visual Studio,您可以编写一个 powershell 脚本来启动您需要 运行 测试的本地站点。 This may help you. 然后,您还需要创建一个脚本,该脚本将在站点启动后 运行 您的 selenium 脚本。我只用 Microsoft WebTests 做过这个,但我看到了与 Selenium 的相似之处。我会从 powershell 脚本中查看 运行 宁你的 selenium 脚本,然后将这两个结合起来,并有一个批处理文件,新用户只需单击它就可以 运行 测试。

2) 您当然可以 运行 来自 TeamCity 的这些脚本,只是可能会有一些额外的配置,例如在构建服务器上安装必要的工具。不过,TeamCity 内置了用于 运行 这些测试的工具,所以希望利用它。