Как выбрать драйвер, который PHPUnit использует для покрытия кода?
Я получаю неверные отчеты о покрытии кода с помощью PHPUnit, и я считаю, что это ошибка в XDebug.
Как я могу настроить PHPUnit для использования одного из его других драйверов, а именно PHPDBG?
(Я использую PHPUnit 4.7.7 и PHP 5.5.12)
1 ответ
PHPUnit выбирает драйвер из среды выполнения PHP, поэтому для запуска PHPUnit с PHPDBG необходимо установить этот двоичный файл.
Вам нужно будет скомпилировать PHP с опцией '--enable-phpdbg', но это только для PHP 5.6 и выше.
Инструкции по установке для PHP 5.4 и выше, (взяты из https://github.com/krakjoe/phpdbg), и цитата
Чтобы установить phpdbg, вы должны скомпилировать исходный код в соответствии с источниками установки PHP и включить SAPI с помощью команды configure.
cd /usr/src/php-src/sapi
git clone https://github.com/krakjoe/phpdbg
cd ../
./buildconf --force
./configure --enable-phpdbg
make -j8
make install-phpdbg
После установки вам нужно вызвать PHPUnit через бинарный файл phpdbg, который находится в /usr/local/php7/bin, поэтому я бы использовал команду
/usr/local/php7/bin/phpdbg -qrr phpunit -v
Это предполагает, что ваш phpunit находится в вашем пути к среде, в противном случае используйте полный или относительный путь к вашему phpunit.
У меня установлен PHPUnit через composer в папке с исходным кодом моего проекта, которая находится в трех каталогах в папке vendor, поэтому моя команда будет
/usr/local/php7/bin/phpdbg -qrr ../../../vendor/bin/phpunit -v
Для получения дополнительной информации см. Документацию по PHPDBG http://phpdbg.com/docs/introduction
Надеюсь это поможет