【问题标题】:Phing keeps building despite failures of CakePHP unit testing尽管 CakePHP 单元测试失败,但 Phing 仍在继续构建
【发布时间】:2014-04-15 09:15:24
【问题描述】:

我们使用 Jenkins 作业和 Phing 进行部署以进行构建。我们的应用程序是在 CakePHP 上制作的。当我运行 Cake 单元测试时,我遇到了一些错误(如预期的那样)。

/app/Console/cake test app AllQaTests --stderr --log-junit

但是 Phing 没有察觉到它们并继续构建而不是停止进程并将构建标记为失败。有什么优雅的方式来处理测试的输出?

现在我们使用一个单独的脚本来扫描测试日志并寻找“FAILURE”字样。

【问题讨论】:

    标签: unit-testing cakephp jenkins phing


    【解决方案1】:

    如果您的cake 命令输出除0 以外的任何内容,Jenkins 会认为它是FAILURE,并且会相应地标记作业。

    要回答您在控制台日志中搜索关键字的问题,Text-finder plugin 允许在控制台日志和/或任何其他文件中搜索正则表达式,并将构建标记为 UNSTABLEFAILED(如果找到)。

    【讨论】:

      【解决方案2】:

      我正打算这样做,但最终尝试使用 ExecTask 的 returnProperty 通过 Phing 捕获失败的构建:

       <target name="caketest-local" description="Run CakePHP unit tests with PHPUnit and print human readable output.">
          <exec dir="${basedir}" executable="${basedir}/app/Console/cake" output="${logdir}/caketest.log" returnProperty="test_result">
              <arg line="test" />
              <arg line="--stderr"/>
              <arg line="--configuration=${basedir}/phpunit-coverage-text.xml" />
              <arg line="app" />
              <arg line="AllTests" />
          </exec>
          <if>
              <not>
                  <equals arg1="${test_result}" arg2="0"/>
              </not>
              <then>
                  <fail msg="Build FAILED! Check caketest.log for details"/>
              </then>
          </if>
      </target>
      

      【讨论】:

        猜你喜欢
        • 2015-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-11
        相关资源
        最近更新 更多