0

我正在使用 phing 来构建我的 CakePHP Web 应用程序。

我希望有一个符合以下要求的 phing 目标:

  1. 运行测试套件
  2. 如果甚至有 1 次失败,则结束 phing 目标
  3. 如果一切正常,运行命令“git commit -a”

对于我的测试套件,我遵循使用 PHPUnit 的 CakePHP 约定

${cake} testsuite ${runinworkspaceapp} app AllTests --log-junit ${builddir}/logs/junit.xml

在哪里

  • ${cake}只是意味着${appdir}/Console/cake
  • ${runinworkspaceapp}方法-app ${appdir}

我将生成一个 junit.xml 文件。下面是 junit.xml 的片段

<testsuites>
  <testsuite name="All Tests" tests="44" assertions="373" failures="0" errors="0" time="4.634020">
    <testsuite name="All Model related class tests" tests="42" assertions="370" failures="0" errors="0" time="4.478717">

我怀疑我需要评估 junit.xml 文件以判断是否有任何错误。我可能是错的,有更好的方法。

如何编写 phing 目标?

4

1 回答 1

1

exit code != 0当至少一个测试失败时,蛋糕应该退出,所以使用<exec>withcheckreturn="true"就足够了。


junit.xml可以通过 phing 任务转换为 HTML(另见http://cweiske.de/tagebuch/visualizing-phpunit-runs.htm):

<?xml version="1.0" encoding="utf-8"?>
<project name="testreport" default="gen-report" basedir=".">
 <target name="gen-report">
  <phpunitreport infile="log.junit.xml"
                 format="frames"
                 todir="html"
                 styledir="/usr/share/php/data/phing/etc/"
                 />
 </target>
</project>
于 2013-01-10T10:06:47.980 回答