既然我还有PHPUnit / PHP 代码覆盖率和 Xdebug 的问题 https://stackoverflow.com/questions/40386345/phpunit-or-its-code-coverage-driver-cannot-find-some-interfaces,我决定尝试另一种方式——phpdbg http://phpdbg.com/.
我这样做了hier https://thephp.cc/news/2015/08/phpunit-4-8-code-coverage-support显示。在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 Code Coverage & phpdbg 组合在 Windows Server 上运行?
在 Windows 下,文件似乎位于vendor/bin
实际上是批处理文件,调用原始文件(而不是 phpdbg 能够理解的 php 文件)。
在这种情况下:
dir=$(d=${0%[/\\]*}; cd "$d"; cd "../phpunit/phpunit" && pwd)
^^^^^^^^^^^^^^^^^^
"${dir}/phpunit" "$@"
^^^^^^^^^^^^^^
i.e. ../phpunit/phpunit/phpunit
(该路径相对于vendor/bin
);因此实际文件位于vendor/phpunit/phpunit/phpunit
.
您可以通过直接调用它phpdbg -qrr vendor/phpunit/phpunit/phpunit
then.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)