Как заставить PHP Code Coverage работать с phpdbg на Windows Server?

Так как у меня все еще есть проблемы с PHPUnit / PHP Code Coverage и Xdebug, Я решил попробовать это по-другому — с phpdbg.

Я сделал это как Hier показано на рисунке. Пробовал в CMD, а также в Git Bash, но результат тот же, он терпит неудачу:

$ composer info | grep "phpunit"phpunit/php-code-coverage           4.0.0  Library that provides collectio...
phpunit/php-file-iterator           1.4.1  FilterIterator implementation t...
phpunit/php-text-template           1.2.1  Simple template engine.
phpunit/php-timer                   1.0.8  Utility class for timing
phpunit/php-token-stream            1.4.8  Wrapper around PHP's tokenizer ...
phpunit/phpunit                     5.4.6  The PHP Unit Testing framework.
phpunit/phpunit-mock-objects        3.2.3  Mock Object library for PHPUnit

$ phpdbg -qrr ./vendor/bin/phpunit -v

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../phpunit/phpunit" && pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m "$dir");
fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/phpunit" "$@"

Как получить комбинацию PHPUnit & Покрытие кода PHP & phpdbg работает на Windows Server?

2

Решение

Под Windows кажется, что файлы в vendor/bin на самом деле это командные файлы, вызывающие исходный файл (а не php-файлы, которые поймет phpdbg).

В этом случае:

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../phpunit/phpunit" && pwd)
^^^^^^^^^^^^^^^^^^
"${dir}/phpunit" "$@"^^^^^^^^^^^^^^

то есть ../phpunit/phpunit/phpunit (этот путь относительно vendor/bin); таким образом, фактический файл находится в vendor/phpunit/phpunit/phpunit,

И вы можете вызвать его напрямую через phpdbg -qrr vendor/phpunit/phpunit/phpunit затем.

4

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

Других решений пока нет …

По вопросам рекламы [email protected]