这是一个非常简单的问题。我发布此消息是因为无法获得令人满意的答案。首先是背景知识:我有Jenkins的工作,该工作将Web应用程序构建并部署到服务器上。服务器需要一些时间(大约5到10分钟)。我想设置一个作业(或根据需要修改现有的作业)来组装将测试应用程序的单元测试用例执行。我正在考虑以下方法。我希望您验证或提出其他选择:

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

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

    最佳答案

    等待固定时间会产生一个问题,即您选择的时间是缩短(构建失败)还是延长(浪费构建时间)。因此,我认为最好检查该应用程序是否可用。

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

    这是我的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错误代码。条件记录在here中。

    关于unit-testing - 如何等待服务器启动并运行来自Jenkins/Hudson的单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11663981/

    10-10 18:15
    查看更多