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

VS Code使用Better PHPUnit扩展运行测试报Cannot Open File错误

问题根因

报错是Better PHPUnit的Docker路径映射配置错误导致的:

  1. Laravel Sail默认会将项目根目录直接挂载到容器内的/var/www/html路径,你当前配置里的映射规则多嵌套了一层${workspaceFolder}路径,和Sail实际挂载规则不符。
  2. 扩展生成测试命令时,没有把WSL侧的本地绝对路径替换为容器内的有效路径,直接把/home/himanshu/example_app/...格式的WSL路径传入容器,容器内不存在该路径,因此触发文件找不到的报错。
  3. 你贴的配置里还有多余的转义换行符n,属于配置格式错误,也会影响扩展正常读取参数。
修复步骤
  1. 打开VS Code的settings.json,将Better PHPUnit相关配置替换为以下内容,注意把路径替换为你自己的WSL侧项目绝对路径:
{
    "better-phpunit.docker.enable": true,
    "better-phpunit.docker.paths": {
        "/home/himanshu/example_app": "/var/www/html"
    },
    "better-phpunit.docker.command": "./vendor/bin/sail exec laravel.test",
    "better-phpunit.phpunitBinary": "vendor/bin/phpunit"
}
  1. 配置注意事项:
    • 不要在路径映射里使用${workspaceFolder}变量,WSL场景下部分版本的Better PHPUnit无法正确解析该变量做路径替换,直接写WSL内的项目绝对路径稳定性最高。
    • 将原配置的./vendor/bin/sail php替换为./vendor/bin/sail exec laravel.test:sail php会启动临时容器执行命令,挂载上下文和常驻的Sail服务容器不一致,直接在已经运行的应用容器内执行命令可以避免路径匹配问题。
    • 如果自定义过Sail容器名,可在项目根目录执行docker ps查看当前运行的容器名称,替换laravel.test字段即可。
  2. 保存配置后重载VS Code窗口,重新运行测试用例即可。此时扩展会自动将本地WSL路径替换为容器内的对应路径,PHPUnit可以正常找到测试文件。

如果仍然存在路径识别问题,确认你是通过VS Code的WSL扩展直接在WSL环境内打开的项目,不是通过Windows侧的网络共享路径访问WSL目录,否则路径解析会出现偏差。

内容的提问来源于stack exchange,提问作者Himanshu Rahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:57:23