项目目录执行phpunit提示‘command not found’的解决方法咨询
我在Windows系统的GitBash中执行以下命令成功安装了PHPUnit:
composer require --dev phpunit/phpunit ^9
安装完成后,执行以下命令
./vendor/bin/phpunit --version
返回PHPUnit 9.5.21,我推测PHPUnit的安装路径为C:\Users\ERIKSON\vendor\phpunit
我在XAMPP目录下有一个项目,路径为C:\xampp\htdocs\erikson-project\wp-content\plugins\youtube-plugin
当我在该项目目录打开GitBash并执行phpunit命令时,提示:
bash: phpunit: command not found
该项目目录下存在composer.json文件,路径为C:\xampp\htdocs\erikson-project\wp-content\plugins\youtube-plugin\composer.json,内容如下:
{ "require-dev": { "phpunit/phpunit": "9.5" } }
请问该如何解决这个问题?是否需要在Windows系统环境变量中添加内容?
方法1:使用项目本地的PHPUnit(推荐)
项目的composer.json仅声明了依赖,但尚未安装,先在项目目录的GitBash中执行:
composer install
或需要更新依赖时执行:
composer update --dev
安装完成后,通过本地路径调用PHPUnit:
./vendor/bin/phpunit --version
这种方式能保证每个项目使用独立的PHPUnit版本,避免全局版本冲突。
方法2:使用全局安装的PHPUnit
你之前在用户目录全局安装的PHPUnit,composer全局工具的可执行文件实际存储在C:\Users\ERIKSON\AppData\Roaming\Composer\vendor\bin,而非你推测的C:\Users\ERIKSON\vendor\phpunit。
方式A:添加环境变量(永久生效)
- 打开Windows系统「环境变量」设置(右键此电脑 → 属性 → 高级系统设置 → 环境变量)
- 在「用户变量」的
PATH中添加路径:C:\Users\ERIKSON\AppData\Roaming\Composer\vendor\bin - 重启GitBash,之后直接执行
phpunit --version即可调用全局版本。
方式B:直接使用绝对路径(临时生效)
在项目目录的GitBash中,直接用全局PHPUnit的绝对路径执行:
/c/Users/ERIKSON/AppData/Roaming/Composer/vendor/bin/phpunit --version
关于环境变量的疑问
如果仅在当前项目使用PHPUnit,无需添加环境变量,用方法1的本地调用即可;如果需要在任意目录直接使用phpunit命令,则需要添加上述路径到环境变量。
内容的提问来源于stack exchange,提问作者Abilash Erikson

