如何等待服务器出现并运行Jenkins/Hudson的单元测试

Vad*_*raj 5 ant junit unit-testing jenkins web

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

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

在此先感谢您的帮助.-Vadiraj.

小智 6

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

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

这是我的蚂蚁目标的精简版:

<parallel>
  <sequential>
    ... Start web application server ...
  </sequential>
  <sequential>
    <waitfor maxwait="10" maxwaitunit="minute">
      <socket server="localhost" port="8080" />
    </waitfor>
    <junit>
    ...
    </junit>
  </sequential>
</parallel>
Run Code Online (Sandbox Code Playgroud)

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