You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Behat测试遇/usr/bin/env系列错误,请求技术排查支持

解决Windows Git Bash中Behat的/usr/bin/env php no such file or directory错误

看起来你遇到的是Windows环境下Git Bash解析shebang脚本的典型问题,尤其是Behat的启动脚本依赖#!/usr/bin/env php来定位PHP,但Git Bash在Windows下的环境变量处理和路径解析有特殊情况,而且你之前把PHP复制到/usr/bin/env目录的操作是错误的——/usr/bin/env本身是一个可执行程序,不是目录,这反而会引发更多异常。

下面是一步步的修复方案:

1. 先恢复错误操作的影响

首先把你复制到/usr/bin/env目录的PHP可执行文件删除,避免后续冲突:

rm /usr/bin/env/php.exe
# 如果提示目录不存在,直接跳过,说明你之前的操作路径其实不对

2. 确认PHP在Git Bash中的可访问性

先在Git Bash里直接执行php -v,如果能正常输出PHP版本信息,说明PHP确实在PATH里;如果不行,先重新配置PATH:

  • 打开Git Bash,执行:
export PATH="/c/你的PHP安装目录:$PATH"
# 比如你的PHP装在C:\php8,就写 export PATH="/c/php8:$PATH"
  • 执行php -v验证是否生效,生效后可以把这条命令加到~/.bashrc文件里,下次启动Git Bash自动加载。

3. 修复Behat脚本的shebang(两种方法)

方法一:直接修改Behat的启动脚本

找到Behat的可执行脚本(通常在vendor/bin/behat),打开它,把第一行的#!/usr/bin/env php改成Windows下Git Bash能识别的PHP绝对路径,比如:

#!/c/php8/php.exe

替换成你实际的PHP安装路径,注意用正斜杠,路径开头是/c/对应C盘。

方法二:使用Git Bash的shebang补丁(更通用)

如果不想修改脚本,可以在Git Bash中设置MSYS_NO_PATHCONV=1环境变量,避免路径转换导致的问题:

  • 临时生效:执行export MSYS_NO_PATHCONV=1,然后再运行behat
  • 永久生效:把export MSYS_NO_PATHCONV=1加到~/.bashrc里

4. 解决之前的usr/bin/env Invalid argument错误

这个错误就是因为你错误地把PHP放到/usr/bin/env目录导致的,恢复第一步的操作后,结合上面的方法,这个错误应该也会消失。

最后,运行behat --init或者你的测试命令,验证问题是否解决。

内容的提问来源于stack exchange,提问作者G. Andreea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:10:55