我按照以下方式执行最基本的任务:
<autoloader autoloaderpath="vendor/autoload.php">
<target name="asdf">
<echo msg="test"/>
<phpunit configuration="app/phpunit.xml"
haltonerror="true"
haltonfailure="true"
pharlocation="bin/phpunit"
/>
</target>
现在只需运行此任务:
phing -debug asdf
将导致:
+Task: echo
-calling setter EchoTask::setMsg()
[echo] qwerqwer
+Task: phpunit
-calling setter PHPUnitTask::setConfiguration()
-calling setter PHPUnitTask::setHaltonerror()
-calling setter PHPUnitTask::setHaltonfailure()
-calling setter PHPUnitTask::setPharLocation()
#!/usr/bin/env php
Cannot open file "asdf.php".
使用除pharlocation之外的相同配置:
+Task: echo
-calling setter EchoTask::setMsg()
[echo] test
+Task: phpunit
-calling setter PHPUnitTask::setConfiguration()
-calling setter PHPUnitTask::setHaltonerror()
-calling setter PHPUnitTask::setHaltonfailure()
BUILD FINISHED
没有错误,但phpunit任务类型没有启动。
有第三个简单的变体似乎很好,这导致了'phpunit:无法识别的选项 - p&#39;我遗憾地无法复制..
答案 0 :(得分:2)
我看到你使用了PHPUnit 5.7。您是否在测试中使用了名称空间?
当前版本的Phing与PHPUnit\Framework\TestCase
等名称空间不兼容,您必须使用旧类\PHPUnit_Framework_TestCase
。
下一个Phing的版本将与PHPUnit的命名空间(https://github.com/phingofficial/phing/issues/659)兼容。同时,您可以创建phpunit.xml
并将其添加到build.xml
以运行测试:
<target name="phpunit" description="Run tests">
<exec executable="bin/phpunit" passthru="true">
<arg value="--configuration"/>
<arg value="app/phpunit.xml"/>
</exec>
</target>