基本信息:
PHP 5.3.3
PHPUnit 3.4
Zend Framework 1.10.8
Phing构建目标
<target name="test">
<echo msg="PHPUnit..." />
<phpunit codecoverage="false" haltonfailure="true" haltonerror="true" printsummary="true" bootstrap="${testdir}/application/bootstrap.php">
<batchtest>
<fileset dir="${testdir}">
<include name="**/*Test.php" />
<exclude name="./application/ControllerTestCase.php" />
<exclude name="./application/bootstrap.php" />
</fileset>
</batchtest>
<formatter type="xml" todir="${builddir}" outfile="phpunit-results.xml" />
</phpunit>
<phpunitreport infile="${builddir}/phpunit-results.xml"
styledir="${phpunit.styles.dir}"
format="frames"
todir="${builddir}" />
</target>
这有效……
phing -f build.xml test
哈德森/ Phing
Hudson中列出的我的Phing目标使用相同的build.xml文件,但不起作用.我得到每个单元测试的相同类型的错误(strpos():空分隔符),只要执行$this-> dispatch(.. url ..)就会发生.
在Hudson中执行单元测试目标时在控制台输出中发生
'strpos(): Empty delimiter' in /opt/phing/classes/phing/tasks/ext/phpunit/PHPUnitTask.php:279
在PHPUnit结果XML文件中
strpos(): Empty delimiter
/opt/zend/library/Zend/Controller/Request/Http.php:504
/opt/zend/library/Zend/Controller/Request/Http.php:551
/opt/zend/library/Zend/Controller/Request/Http.php:615
/opt/zend/library/Zend/Test/PHPUnit/ControllerTestCase.php:187
/var/lib/hudson/.hudson/jobs/IPS/workspace/trunk/tests/application/IndexControllerTest.php:6
/opt/phing/bin/phing.php:37
任何人都可以对此有所了解吗?
解决方法:
从技术上讲,我解决了这个问题,但决定不通过Hudson Phing目标运行PHPUnit.相反,我决定在Hudson中运行一个shell命令,目前它可以满足我们的需求.如果有人有任何其他想法,我会全力以赴.谢谢!