Specflow selenium测试针对部署的代码运行

时间:2015-03-12 10:02:40

标签: tfs tfsbuild specflow acceptance-testing

我有一个问题,到目前为止还没有人能给我一个好的答案。

我们有一些使用selenium测试我们的Web应用程序(SPA)的specflow测试,它们包含在TFS的构建定义中,以便它们与构建一起运行。

测试针对具有web.config中指定的地址的网站运行。我认为这意味着构建了解决方案,然后针对配置文件中指定的url运行测试,这意味着它实际测试了网站的最后部署版本?这是正确的,有没有一种方法来部署网站,然后针对它运行specflow测试?

请问最好的做法,谢谢。

1 个答案:

答案 0 :(得分:2)

在这种情况下,我倾向于将构建分为几个步骤:

  • 构建代码并运行单元测试
  • 将代码部署到测试服务器
  • 针对新部署运行部署后测试

这可以确保测试是针对我刚刚签入的代码运行的,但显然有一些注意事项,你必须确保在你的测试仍然是你的当前部署时,另一个版本不会通过splat运行。缓解这种情况的需要将取决于你拥有多大的团队以及这需要多少自动化,如果你可以依靠人工管理它,那就太好了。如果没有,那么您可以拥有多个测试环境,或者理想情况下每个开发1个。如果要部署到云,则可以简化这一过程,因为您可以轻松地为每个开发人员启动测试部署。

您也可以使用asp.VNext中的一些新内容来处理其中的一些内容,因为您可以让测试自己托管网站,完全不需要部署。虽然我认为实际上这只会意味着更多的“集成”测试可以通过这种方式运行,但您可能仍希望在部署后运行一些测试,即使它们是烟雾测试的一部分来检查所有内容仍然有效。