【问题标题】:How to wait for server to come up and run unit test from Jenkins/Hudson如何等待服务器启动并从 Jenkins/Hudson 运行单元测试
【发布时间】:2012-07-24 17:25:11
【问题描述】:

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

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

提前感谢您的帮助。 -Vadiraj。

【问题讨论】:

    标签: unit-testing ant junit web jenkins


    【解决方案1】:

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

    我为我的 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

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 2015-03-21
      • 2021-12-25
      • 2014-02-06
      • 2014-04-25
      相关资源
      最近更新 更多