unit-testing - 如何等待服务器启动并从 Jenkins/Hudson 运行单元测试

标签 unit-testing ant junit web jenkins

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

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

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

    最佳答案

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

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

    相关文章:

    c# - 对自定义 WPF UIElement 的呈现进行单元测试

    java - Ant 宏: fileset as javac src element

    android - 使用 Kotlin 在 Android 中的测试中声明 @BeforeClass 的正确方法是什么

    java - Jenkins Sonar 失败 JUnit 版本为 null

    unit-testing - 多个独立maven项目的通用测试数据

    angular - JS,单元测试 : expect on a callback

    Ant 输出到 2 个不同的来源?

    windows - 如何在 ANT 中检测 windows 操作系统

    maven - PaxExam OSGI 容器和 ServiceLookupException

    node.js - 如何在 serverless-mocha-plugin 中模拟单元测试功能