php - 使用 Docker 在 PhpStorm 中使用 PHPUnit

标签 php docker phpunit phpstorm

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

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

PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Cannot create phar '/usr/local/bin/phpunit', file extension (or combination) not recognised or the directory does not exist' in /opt/.phpstorm_helpers/phpunit.php:181

Stack trace:

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

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

#2 {main} thrown in /opt/.phpstorm_helpers/phpunit.php on line 181



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

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

这是我的设置
phpunit_framework_settings

最佳答案

我刚刚遇到了这个问题 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 > 服务器中的服务器定义名称

    关于php - 使用 Docker 在 PhpStorm 中使用 PHPUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611782/

    相关文章:

    php - 如何修复 PDO 执行语句中的 http 错误 500?

    php - 在 php 中设置 base_url() 。任何php框架中的base_url()应该是什么?

    amazon-web-services - 亚马逊应用程序负载均衡器上托管的套接字连接出现 400 错误请求

    amazon-web-services - 使用Docker进行Tensorflow服务

    使用 Makegood 的 Eclipse 4.2 中的 PHPUnit 测试未运行

    php - 响应成功时更新我的​​表总是返回空白

    c# - .Net Core Machine Key 替代 webfarm

    symfony - 使用 LiipFunctionalTestBundle 和固定装置进行独立功能测试?

    php - 使用\PHPUnit_Framework_TestCase 或 ..\TestCase

    php - 更新后重定向用户