5

这是一个很简单的问题。我发布这个是因为我无法得到任何令人满意的答案。首先是背景:我有 Jenkins 工作,负责构建 Web 应用程序并将其部署到服务器上。服务器需要一些时间(大约 5 到 10 分钟)。我想设置一个作业(或根据需要修改现有的)来安装单元测试用例执行,这将测试应用程序。我正在考虑以下方法。我希望您验证或建议任何替代方案:

  • 有一个等待固定时间的 Ant 目标
  • 有一个自定义的 Ant 目标,它可以 ping URL 并检查应用程序的可用性

在此先感谢您的帮助。-瓦迪拉杰。

4

1 回答 1

6

等待固定时间的问题是,您选择的时间要么太短(构建失败),要么太长(浪费构建时间)。所以我认为最好检查应用程序是否可用。

我为我的 Selenium 测试做了类似的事情。我不得不等到 Selenium 远程服务器启动。我使用了waitfor元素。有关详细文档,请参见此处

这是我的 ant-Target 的精简版:

<parallel>
  <sequential>
    ... Start web application server ...
  </sequential>
  <sequential>
    <waitfor maxwait="10" maxwaitunit="minute">
      <socket server="localhost" port="8080" />
    </waitfor>
    <junit>
    ...
    </junit>
  </sequential>
</parallel>

如果您的服务器在部署 Web 应用程序之前可用,您可以尝试使用http条件而不是socket检查 HTTP 错误代码。条件在此处记录。

于 2012-07-26T07:41:14.127 回答