Phing 和 PHPUnit,连最基本的东西都搞不懂 运行
Phing and PHPUnit, just cant get even the most basic thing running
使用 composer 安装的 bin
我运行一个最基本的任务如下:
<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".
使用 .phar
使用相同的配置,除了 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: unrecognized option -- p' 我很遗憾无法重现..
版本
- PU 5.7
- Phing 2.16
- PHP 7.1
我看到你用的是 PHPUnit 5.7。您是否在测试中使用了命名空间?
当前版本的 Phing 与 PHPUnit\Framework\TestCase
等命名空间不兼容,您必须改用旧的 class \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>
使用 composer 安装的 bin
我运行一个最基本的任务如下:
<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".
使用 .phar
使用相同的配置,除了 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: unrecognized option -- p' 我很遗憾无法重现..
版本
- PU 5.7
- Phing 2.16
- PHP 7.1
我看到你用的是 PHPUnit 5.7。您是否在测试中使用了命名空间?
当前版本的 Phing 与 PHPUnit\Framework\TestCase
等命名空间不兼容,您必须改用旧的 class \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>