尝试在Yii2中运行phpunit时出现Cygwin问题


Cygwin issue when trying to run phpunit within Yii2

我试图在Yii2基本安装中运行phpunit,但每当我从命令行运行php vendor/bin/phpunit时,我得到以下输出:

注意:我使用的是Windows 7。

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,所以不确定发生了什么。

这是一个显而易见的解决方案:

文件vendor/bin/phpunit不是PHP脚本,而是shell脚本。

删除php,直接运行vendor/bin/phpunit

从命令中删除php,我得到'php' is not recognized as an internal or external command,并使用php打印该文件内的shell脚本您提到的。正如问题中提到的,它只是输出脚本

修复

  • 将php添加到path

  • 对于临时使用,可以尝试这样做:(有利于使用npm或composer)
    SET PATH=c:'wamp'bin'php'php5.3.29';%PATH%