如何在PhpStorm 8的远程服务器上使用PHPUnit

时间:2014-09-18 09:10:46

标签: php phpunit phpstorm remote-server

我在远程服务器上的Ubuntu 12.04上运行了php-fpm 5.3.10安装,我正在尝试使用PhpStorm 8中的PHPUnit(截至昨天)。我没有本地的php安装。

我在我的服务器上安装了PHPUnit,可以通过命令行使用它。

我(似乎)成功地将我的PhpStorm链接到我的远程服务器和远程解释器,并配置了正确的部署设置。

起初我遇到了一个问题,它会尝试远程运行我的本地路径,但该问题已经过排序。但是,我一直收到错误Cannot find PHPUnit in include path (.:/usr/share/php:/usr/local/bin)。这几乎肯定是服务器端错误(PhpStorm也知道这些包括路径,它可能会使它们混淆本地路径),因为当我在php.ini中更改包含路径时路径会发生变化。

如果我根本不安装PHPUnit,这就是它给出的相同错误,所以再次看起来这是服务器端问题。

我已经尝试通过PEAR安装PHPUnit(很快就被PHPUnit支持,但在许多PhpStorm教程中仍然提到),通过Composer(在远程服务器上,而不是在PhpStorm中)甚至只是手动安装。

服务器很好地接受了这些安装方法(PEAR方法似乎安装了旧版本的PHPUnit,1.0.x而不是显然可用的4.0.x),但它们都给出了同样的问题。

如果我手动将PHPUnit放在我的包含路径中(我不确定它想要什么样的文件,但是.pha。源文件?)它似乎确实有些东西,但我得到了一个XDebug错误它告诉我它找不到必要的PHPUnit文件所以我认为它不是要走的路(它不应该是)。

此时我开始没有想法了,Stackoverflow对类似问题或PhpStorm / PHPUnit文档的回应似乎都无法帮助我。

编辑1:根据要求包含设置图片。

(无法发布图片,代表不够) settings

除此之外,值得注意的是我正在使用已安装的文件夹进行部署,这只是指我服务器的文件系统(它位于我的本地网络中)

编辑2:根据建议将部署更改为SFTP并更新了我的映射,因为PhpStorm能够成功验证我的远程环境,所有内容似乎都在那里。

在通过Composer重新安装PHPUnit并在我的PHPUnit设置中选择自动加载器后,它仍然提供有关包含路径的错误(当使用自动加载器时不应该这样做,应该吗?)所以我将include路径更改为point到/usr/share/php/Composer/vendor/phpunit(以及它上面的两个目录,为了更好的衡量标准)。

它仍然提供错误,但是在错误中它表示它无法在include路径中找到PHPUnit,而安装位于名为phpunit(全部小写)的目录中。将目录名更改为PHPUnit后,它不再提供包含路径错误,而是更改为XDebug错误:Warning: include(/usr/share/php/Composer/vendor/phpunit/phpunit/PHPUnit/TextUI/ResultPrinter.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /usr/share/php/Composer/vendor/composer/ClassLoader.php on line <i>382</i>

我不确定这究竟是什么意思,我不知道错误是因为我不应该更改目录名称(似乎这不应该是必要的),因为我没有改变他们(其他目录可能仍然是小写)或因为这些文件应该只是在include路径中(作曲家应该管理我的依赖项,不应该吗?)。

1 个答案:

答案 0 :(得分:1)

在某些情况下,这可以非常轻松地解决。 PHPStorm在include路径中查找文件夹PHPUnit,但我发现这是区分大小写的!通过composer安装将PHPUnit安装在名为/ vendor / phpunit / phpunit / phpunit的文件夹中,这都是小写的。这意味着PHPStorm将无法找到该文件夹​​,除非您将文件夹名称更改为&#39; PHPUnit&#39;。因此,include路径应该是:/ usr / share / php / composer / vendor / phpunit / phpunit,在该文件夹中,应该有另一个名为&#39; PHPUnit&#39; (区分大小写!)。我确定这不是完美的解决方案,但它确实有效。

相关问题