phpunit通过composer安装,告诉phing使用它

时间:2015-12-23 14:05:14

标签: php phpunit composer-php phing

我似乎无法让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不是我想要的,因为我不希望开发人员之间存在版本差异。

4 个答案:

答案 0 :(得分:2)

你有没有尝试过Phing Autoload Task?

https://www.phing.info/docs/guide/trunk/AutoloaderTask.html

我这样使用它:     

答案 1 :(得分:1)

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

答案 2 :(得分:0)

Phing使用您的项目本地库,包括PHPUnit库,您不必明确提及bin/phpunit可执行文件。

我不知道phing如何知道项目本地依赖关系。

答案 3 :(得分:0)

我设法修复了autoloading 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>