首页 文章

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

提问于
浏览
1

我在远程服务器上的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放在我的include路径中(我不确定它想要什么样的文件,但是.pha . 源文件?)它似乎确实找到了一些东西,但我得到了一个XDebug错误而且它告诉我找不到必要的PHPUnit文件所以我认为它不是要走的路(它不应该是) .

在这一点上,我开始没有想法,没有Stackoverflow对类似问题或PhpStorm / PHPUnit文档的响应似乎能够帮助我 .

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

(还不能发布图片,没有足够的代表)settings

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

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

在通过Composer重新安装PHPUnit并在我的PHPUnit设置中选择自动加载器后,它仍然提供有关包含路径的错误(当使用自动加载器时不应该这样做,应该吗?)所以我将include路径更改为指向 /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 回答

  • 1

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

相关问题