Как выбрать драйвер, который использует PHPUnit для покрытия кода?

Я получаю неправильные отчеты о покрытии кода с помощью PHPUnit, и я считаю, что это ошибка с XDebug.

Как настроить PHPUnit на использование одного из его других драйверов, а именно PHPDBG?

(Я использую PHPUnit 4.7.7 и PHP 5.5.12)

Ответ 1

PHPUnit выбирает драйвер из среды Runtime 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, установленный через композитор в исходной папке проекта, который состоит из трех каталогов в папке "vendor", поэтому моя команда будет

/usr/local/php7/bin/phpdbg -qrr ../../../vendor/bin/phpunit -v

Для получения дополнительной информации см. документацию для PHPDBG http://phpdbg.com/docs/introduction

Надеюсь, что это поможет