phpunit установлен через composer, скажите phing, что использовать

Я не могу заставить Phing использовать мой PHPUnit, установленный через composer (в локальном проекте bin/ каталог). В крайнем случае, если я скажу Phing использовать мой исполняемый файл phpunit, как если бы это был файл PHAR, использующий <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 — это не то, что я хотел бы, потому что я не хочу различий в версиях между разработчиками.

1

Решение

Вы уже пробовали задачу автозагрузки Phing?

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

Я использую это так:

2

Другие решения

Превращение вашего 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.

1

Phing использует локальные библиотеки вашего проекта, включая библиотеки PHPUnit, вам не нужно явно упоминать bin/phpunit исполняемый файл.

Как phing знает, как смотреть на локальные зависимости проекта, мне неизвестно.

0

Мне удалось это исправить автозагрузкой файла 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>
0
По вопросам рекламы [email protected]