Unit testing 尽管CakePHP单元测试失败,Phing仍在继续构建
我们使用Jenkins job和Phing进行构建部署。我们的应用程序是在CakePHP上开发的。当我运行Cake单元测试时,我得到了一些错误(正如预期的那样) 但是Phing没有察觉到它们,而是继续构建,而不是停止进程并将构建标记为失败。有没有优雅的方法来处理测试的输出Unit testing 尽管CakePHP单元测试失败,Phing仍在继续构建,unit-testing,cakephp,jenkins,phing,Unit Testing,Cakephp,Jenkins,Phing,我们使用Jenkins job和Phing进行构建部署。我们的应用程序是在CakePHP上开发的。当我运行Cake单元测试时,我得到了一些错误(正如预期的那样) 但是Phing没有察觉到它们,而是继续构建,而不是停止进程并将构建标记为失败。有没有优雅的方法来处理测试的输出 现在我们使用一个单独的脚本来扫描测试日志并查找“失败”字。如果您的cake命令输出的不是0,Jenkins会将其视为失败,并相应地标记作业 为了回答您在控制台日志中搜索关键字的问题,有一个,它允许搜索控制台日志和/或任何其他文
现在我们使用一个单独的脚本来扫描测试日志并查找“失败”字。如果您的
cake
命令输出的不是0
,Jenkins会将其视为失败,并相应地标记作业
为了回答您在控制台日志中搜索关键字的问题,有一个,它允许搜索控制台日志和/或任何其他文件中的正则表达式,并将生成标记为不稳定或失败,如果找到的话。,但最终尝试使用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>
<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>