【问题标题】:Cannot find PHPUnit in include path phpstorm在包含路径 phpstorm 中找不到 PHPUnit
【发布时间】:2013-08-21 00:58:49
【问题描述】:

Cannot find PHPUnit in include path 是我尝试在 phpstorm 中运行代码时收到的错误消息。

在 PHP 设置中,我的 PHP 级别语言是 5.4 (traits, short array syntax, etc.),解释器是 Name(5.4.7),其中 Name 是用户定义的。

当我尝试运行代码时出现错误,确切的消息是这样的:

C:\xampp2\php\php.exe C:\Users\DELL\AppData\Local\Temp\ide-phpunit.php --no-configuration

C:\xampp2\htdocs\ft-website

测试于下午 2:34 开始 ...

进程以退出代码 1 结束

在包含路径 (.;C:\xampp2\php\PEAR) 中找不到 PHPUnit`

【问题讨论】:

  • 您应该完全按照错误消息中的说明进行操作:将 PHPUnit 文件所在的路径添加到 php.ini 中的 include_path 配置变量中
  • PHPUnit 是否实际安装在C:\xampp2\php\PEAR 中?最好的方法是使用 PEAR 将其安装在那里,或者将您的 PHP 包含路径调整到另一个位置的 PHPUnit 安装。
  • 我有一个php\pear 文件夹。我将继续使用 PEAR 进行安装,看看是否能解决问题。

标签: php phpstorm


【解决方案1】:

我自己也遇到了这个问题。

我不确定为什么它无法在包含路径中找到 PHPUnit(尽管它在那里,尽管都是小写的)。

我通过更改 PHPUnit 的 IntelliJ 首选项(在 PHP --> PHPUnit 下)解决了这个问题。我将PHPUnit library 设置更改为Use custom loader,然后指定phpunit 可执行文件的路径。在我的 Mac 上,那是 /usr/local/Cellar/php54/5.4.26/bin/phpunit

更新:

我刚刚发现 pear 现在将 PHPUnit 安装为名为 phpunitphar。它之前安装了 PHPUnit 源,这对于 PHPStorm 中的参考和代码完成非常有用。我认为这就是 PHPStorm 不再适用的原因,因为它需要一个 php 可执行文件而不是一个 php 存档。

所以,我不再使用pear 来安装PHPUnit,而是改用composer。这将 PHPUnit 直接捆绑为我的项目的依赖项,这使其比系统依赖项更具可移植性。您需要在 PHPStorm 首选项中添加 vendor/phpunit/phpunit 作为 PHP 包含路径。这有两个目的:

  1. PHPStorm 现在可以找到phpunit 可执行文件
  2. PHPStorm 现在将索引所有PHPUnit 类,因此您将获得自动完成。耶!

为此,请转到 PhpStorm 设置中的语言和框架。 如果你点击 PHP,在右边你有你的包含路径

【讨论】:

  • 抱歉,如何将vendor/phpunit/phpunit 添加为 PHP 包含路径?我不清楚。
  • drupal8 的路径为/PATH/TO/DRUPAL/core/tests/bootstrap.php
  • 使用 Laravel Homestead 时,请记住不要使用本地解释器,而是使用远程解释器。第一次你必须使用左上角的绿色加号将它添加到 Languages & Frameworks -> PHP -> PHPUnit
【解决方案2】:

我在通过 composer 添加 PHPUnit 后遇到了这个问题。

我通过在 Settings -> Languages and Frameworks -> PHP -> PHPUnit 中选择 use custom autoloader 来解决此问题,然后添加 /vendor/autoload.php 作为自定义自动加载器的位置。

【讨论】:

  • 不幸的是,这似乎不是相对路径。不知道为什么每次我在做一个项目时都必须纠正这个问题。
  • 我将它与上面@Ben 的答案结合起来,现在它可以工作了(使用 IntelliJ)。
【解决方案3】:

除了 Ben 的回答之外,在 phpStorm 7.1.3 中,它通过在“使用自定义加载器”选项下指定 phpunit.phar 位置来工作,例如:

“脚本路径:/usr/share/php/phpunit.phar”

【讨论】:

  • 请在您的答案中添加更多描述。这将有助于提问者从您的答案中获得更多信息。
【解决方案4】:

这是不使用 composer 并使用全局 phpunit 的方法。

  1. Phpunit 现在带有一个phar 文件。我的路径是 /usr/local/Cellar/phpunit/5.0.0/libexec/phpunit-5.0.0.phar

  1. PhpStorm Preferences -> phpunit.phar 的路径 -> 选择 phpunit phar

  1. 就是这样,好东西。

【讨论】:

  • 要获得自动补全,可以将包含 phar 的目录添加为包含路径。在上图中,它将是/usr/local/Cellar/phpunit/5.0.0/libexec/
【解决方案5】:

我在使用 Vagrant 的 PHPStorm 2017 中遇到了同样的问题。首先转到Settings -> Languages and Frameworks -> PHP 并添加远程解释器,然后转到Settings -> Languages and Frameworks -> PHP -> PHPUnit 单击顶部的+ 并单击by Remote Interpreter。如果您使用的是 Composer 自动加载器,请输入您的自动加载器文件的完整 Vagrant 路径。

【讨论】:

  • 我确实需要这个,但不能让它工作。如果我运行测试,我仍然会得到“在包含路径中找不到 PHPUnit”。我做了你写的 - 所以你能提供一些更详细的信息吗?
  • 好的,在这里找到了我的答案:stackoverflow.com/questions/12814263/… - 基本上我必须做“选择使用自定义加载程序,然后输入 autoload.php” - 所以实际上我只是没有完全理解你的答案;-)
  • 很高兴我的回答有帮助:)
【解决方案6】:

对于未来的读者,通过定义 global phpunit.phar(不是 composer)的路径来解决使用 PHPStorm + Vagrant + PHPUnit 时的相同问题

虽然测试成功运行,但我错过了代码完成。我已经确认 phpunit 在我的本地机器上的 PATH 中,并且为了确保我已将 /usr/local/bin 添加到 PHP Settings 中的 PHP 包含路径中。仍然没有代码完成。

原因:PHPstorm 正在寻找phpunit.phar,而不仅仅是phpunit。为了解决这个问题,我在本地机器上建立了一个符号链接phpunit.phar 指向phpunit

$ cd /usr/local/bin/
$ sudo ln -s phpunit phpunit.phar

然后我重新索引项目,代码完成开始工作。

【讨论】:

    【解决方案7】:

    对于那些在 2020 年关注它的人,从 PHPStorm 2019 开始,以下是:

    Languages and Frameworks->PHP->Test Frameworks
    
    1. 选择添加新库
    2. 选择“PHPUnit”
    3. 选择“phpunit.phar 的路径”电台
    4. 您将自动选择下载 PHPUnit

    【讨论】:

      猜你喜欢
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 2016-06-26
      相关资源
      最近更新 更多