通过 composer 安装的 phpunit,告诉 phing 使用它
phpunit installed via composer, tell phing to use that
我似乎无法让 Phing 使用我通过 composer 安装的 PHPUnit(在项目本地 bin/
目录中)。作为最后的手段,如果我告诉 Phing 使用我的 phpunit 可执行文件,就好像它是一个使用 <phpunit pharlocation="${basedir}/bin/phpunit" />
的 PHAR 文件一样
但这也失败了:
Project > phpunit:
#!/usr/bin/env php
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.
unrecognized option -- f
我不想篡改我的 PATH,因为其他开发人员应该能够 运行 phing phpunit-target 而不会遇到任何大麻烦。另外,全局安装的 phpunit 不是我想要的,因为我不希望开发人员之间存在版本差异。
Phing 使用您的项目本地库,包括 PHPUnit 库,您不必明确提及 bin/phpunit
可执行文件。
我不知道 phing 如何知道查看项目本地依赖项。
将您的 PhpunitTask
变成 ExecTask
应该会有所帮助:
<target name="phpunit">
<exec logoutput="true" checkreturn="true" dir="${basedir}" command="bin/phpunit" />
</target>
有关参考,请参阅 https://www.phing.info/docs/guide/trunk/ExecTask.html。
您是否已经尝试过 Phing 自动加载任务?
https://www.phing.info/docs/guide/trunk/AutoloaderTask.html
我是这样使用的:
我设法修复了自动加载 composer/autoload.php 文件
<project name="name" default="build">
<autoloader autoloaderpath="${baseDir}/vendor/autoload.php"/>
<target name="tests">
<phpunit bootstrap="${testsDir}/bootstrap.php" >
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset dir="${testsDir}">
<include name="**/*Test*.php"/>
</fileset>
</batchtest>
</phpunit>
</target>
</project>
我似乎无法让 Phing 使用我通过 composer 安装的 PHPUnit(在项目本地 bin/
目录中)。作为最后的手段,如果我告诉 Phing 使用我的 phpunit 可执行文件,就好像它是一个使用 <phpunit pharlocation="${basedir}/bin/phpunit" />
但这也失败了:
Project > phpunit:
#!/usr/bin/env php
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.
unrecognized option -- f
我不想篡改我的 PATH,因为其他开发人员应该能够 运行 phing phpunit-target 而不会遇到任何大麻烦。另外,全局安装的 phpunit 不是我想要的,因为我不希望开发人员之间存在版本差异。
Phing 使用您的项目本地库,包括 PHPUnit 库,您不必明确提及 bin/phpunit
可执行文件。
我不知道 phing 如何知道查看项目本地依赖项。
将您的 PhpunitTask
变成 ExecTask
应该会有所帮助:
<target name="phpunit">
<exec logoutput="true" checkreturn="true" dir="${basedir}" command="bin/phpunit" />
</target>
有关参考,请参阅 https://www.phing.info/docs/guide/trunk/ExecTask.html。
您是否已经尝试过 Phing 自动加载任务?
https://www.phing.info/docs/guide/trunk/AutoloaderTask.html
我是这样使用的:
我设法修复了自动加载 composer/autoload.php 文件
<project name="name" default="build">
<autoloader autoloaderpath="${baseDir}/vendor/autoload.php"/>
<target name="tests">
<phpunit bootstrap="${testsDir}/bootstrap.php" >
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset dir="${testsDir}">
<include name="**/*Test*.php"/>
</fileset>
</batchtest>
</phpunit>
</target>
</project>