【问题标题】:How can I get IDE autocomplete for PHPUnit if I installed from source?如果我从源代码安装,如何获得 PHPUnit 的 IDE 自动完成功能?
【发布时间】:2014-05-28 14:28:24
【问题描述】:

我知道这似乎是重复的,但我的问题是不同的:

由于我是从源代码安装 PHP,所以有些文件夹不存在。我使用 pear 以通常的方式安装了 PHPUnit。

通常我会将/usr/share/php 添加到IDE 或项目的包含路径并完成。但是那个文件夹不存在。

$ updatedb
$ locate phpunit
/usr/local/bin/phpunit
/usr/local/lib/php/.channels/pear.phpunit.de.reg
/usr/local/lib/php/.channels/.alias/phpunit.txt
/usr/local/lib/php/.registry/.channel.pear.phpunit.de
/usr/local/lib/php/.registry/.channel.pear.phpunit.de/phpunit.reg

$ locate PHPUnit
/usr/local/lib/php/doc/PHPUnit
/usr/local/lib/php/doc/PHPUnit/LICENSE
/usr/local/lib/php/doc/PHPUnit/README.md

我尝试包含 /usr/local/lib/php,但我仍然得到“未定义的类 PHPUnit_Framework_TestCase”

请注意,php 和 phpunit 工作正常,我只需要 IDE 自动完成方面的帮助。

我能做什么?

【问题讨论】:

  • 也许您可以编辑 phpunit "bin" 并检查实际 PHPUnit 所在的位置?
  • @MichalTrojanowski 好主意。我打开它,似乎所有代码都在其中,就像在一个巨大的 phar 文件中一样。包括它似乎不起作用。

标签: php phpunit pear phpstorm


【解决方案1】:

PHPUnit v4 开始,PEAR 分发版现在包含 PHAR 版本,而不是大量单独的文件。并且有一个文件 (phpunit) 而不是启动器 + php 文件(安装时 phpunit.phar 被重命名为 phpunit)。

因为它现在没有 .phar 扩展名,IDE 将无法相应地识别它。

最简单的选择是下载 PHPUnit 的实际 PHAR 版本并放置在项目中的任何位置(例如,在 vendors 文件夹内)。

【讨论】:

  • 正确。我最终将 bin/phunit 复制到一个 tmp 文件,然后使用 php -r "\$phar = new Phar('/tmp/phpunit.phar');\$phar->extractTo('/tmp/phpunit');" 提取 phar,并将该目录移动到包含的路径中。我这样做是因为显然文件太大或其他什么东西,IDE 不会检查它。
  • IDE 可以很好地检查它(phpunit.phar 文件——尽管需要一些时间)——在 Windows 7 上的 PhpStorm v8 EAP 中使用 PHPUnit 4.0.12 进行了测试
  • 它说的是太大了,我认为它提出了增加限制。但无论如何,原始的 phpunit 文件不是 .phar,它没有扩展名。当我包含它时,没有自动完成功能。也许添加扩展就足够了。将它提取到原始结构中仍然很好。
  • 是的 - IDE 通过扩展名识别文件(我在回答中提到了这一点),您可以从 IDE 中浏览 phar 文件的内容(并查看单个文件)。无论如何 - 它正在工作..所以也许在下一个项目中尝试它..或者当你升级你的 PHPUnit 时。
  • 尝试重新启动 phpstorm 如果它无法识别 phar 文件,然后像我一样开始拔毛...
猜你喜欢
  • 2020-06-11
  • 2011-11-24
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多