Как выбрать драйвер, который 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

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

Другие вопросы по тегам