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

问题描述:

这是非常简单的问题。我张贴这个,因为我无法得到任何满意的答案。首先是背景:我有Jenkins的工作,构建并将Web应用程序部署到服务器上。服务器需要一些时间(大约5到10分钟)。我想设置一个工作(或者根据需要修改现有的工具)来构建将测试应用程序的单元测试用例执行。我正在考虑以下方法。我想请你来验证或提出任何替代方案:如何等待服务器启动并运行Jenkins/Hudson的单元测试

  • 有等待一个固定的时间
  • 具有坪的应用程序可用性的URL和检查自定义Ant目标Ant目标

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

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

我为我的Selenium测试做了类似的事情。我必须等到Selenium Remote Server启动。我使用了waitfor元素。有关详细的文档,请参见here

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

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

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

+0

谢谢,这真的有帮助! – Vadiraj 2012-07-26 09:29:05