使用 Docker 在 PhpStorm 中使用 PHPUnit

Posted

技术标签:

【中文标题】使用 Docker 在 PhpStorm 中使用 PHPUnit【英文标题】:Using PHPUnit in PhpStorm using Docker 【发布时间】:2018-11-09 17:28:16 【问题描述】:

我必须持有一个非常具体的配置,直到我可以开始将功能从我的旧 php 5 应用程序移动到其他地方。

我正在尝试将我的测试环境与 PhpStorm 联系起来,但我无法弄清楚。由于我没有使用 Composer,我必须指定 phpunit.phar 路径(即/usr/local/bin/phpunit - 指向/usr/local/bin/phpunit.phar 的符号链接)。我一直有这个错误。

PHP 致命错误:在 /opt/.phpstorm_helpers 中出现未捕获的异常“UnexpectedValueException”和消息“无法创建 phar '/usr/local/bin/phpunit'、文件扩展名(或组合)无法识别或目录不存在” /phpunit.php:181

堆栈跟踪:

#0 /opt/.phpstorm_helpers/phpunit.php(181): Phar->__construct('/usr/local/bin/...')

#1 /opt/.phpstorm_helpers/phpunit.php(250): IDE_PHPUnit_Loader::init()

#2 主 在第 181 行的 /opt/.phpstorm_helpers/phpunit.php 中抛出

我的 Docker 上的设置是 PHP 5.5.9 和 PHPUnit 4.8.9

我的远程 Docker PHP 解释器在 PhpStorm 中工作,当我在 bash 中运行测试时我的 PHPUnit 工作(使用 docker exec phpunit) - 所以看起来这些部分都在工作,主要是胶水不起作用。

这是我的设置

【问题讨论】:

它与 WebStorm 有什么关系? WebStorm 不支持 PHP。 完全正确,刚刚纠正了我的错字 请仔细检查/usr/local/bin/phpunit.phar 确实存在于容器中。 root@6649373c4111:/usr/local/bin# ls 这是我的 ls 输出 composer phpunit phpunit.phar set_tz 【参考方案1】:

我刚刚在composer 遇到了这个问题,问题是您需要在PHPStorm 中使用autoload.php 文件设置一个PHPUnit 解释器。

打开设置 > 语言和框架 > PHP > 测试框架 点击加号+ 图标添加远程口译员 选择之前定义的 CLI 解释器并使用现有的路径映射 选择Use Composer Autoloader 脚本路径应该是/path/to/vendor/autoload.php 勾选Default configuration file并将其设置为/path/to/phpunit.xml

我还需要在我的docker-compose.yml 中包含以下部分:

services:
  my-api:
    # Other contents omitted
    environment:
      - PHP_IDE_CONFIG=serverName=my-api.company.com

my-api.company.com 是设置 > 语言和框架 > PHP > 服务器中的服务器定义名称

【讨论】:

以上是关于使用 Docker 在 PhpStorm 中使用 PHPUnit的主要内容,如果未能解决你的问题,请参考以下文章

使用 WSL-2 和 Docker 在 PhpStorm 中设置 PHPUnit:无法解析 PHPUnit 版本输出:无法打开输入文件

如何配置 PhpStorm、Codeception 和 Docker 以可靠地获得代码覆盖率

如何设置PhpStorm以便Docker Compose Interpreter可以使用PHP可执行文件?

PhpStorm + Docker + Xdebug + DB SSH 隧道

markdown PHPStorm远程调试Docker容器

如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?