PHPUnit通过Composer和PhpStorm

shr*_*ing 24 php phpunit phpstorm composer-php

我现在正在努力设置PhpStorm以进行单元测试.无论我做什么,我都会得到这个

Process finished with exit code 1
Cannot find PHPUnit in include path ...
Run Code Online (Sandbox Code Playgroud)

PHPUnit(通过命令行)可以从任何地方访问; 我已经设置了正确的包含路径,并将PHPUnit添加到外部库中.没有机会.

它是否可能或仅通过PEAR安装?我已经解决了所有相关问题,我在Mac上,PHPUnit通过CLI顺利运行.

Ada*_*nch 62

@ aderuwe的答案有效,但该配置不是每个项目的范围,它适用于所有项目.从PHPStorm 6(实际上甚至是EAP版本PS-126.260)开始,您可以执行以下操作:

  1. 转到File- > Settings- > PHP- > PHPUNIT.
  2. 选择Use custom loader然后autoload.php从项目供应商目录中输入文件.此自动加载器将自动加载Composer管理的所有依赖项(包括PHPUnit).
  3. 指定默认配置文件(通常phpunit.xml.dist来自项目的app目录).

<code>Run</code>- > <code>Edit Configurations...</code>或只需单击工具栏上的下拉菜单,然后选择<code>Edit Configurations...</code>.</li>
<li>转到<code>Defaults</code>- ><code>PHPUnit</code></li>
<li>在<code>Test Scope</code>,选择<code>Defined in configuration file</code></li>
<li>确保<code>Interpreter options</code>文本字段为空</li>
<li>转到<code>PHPUnit</code>(上面<code>Defaults</code>)并删除它下面的任何条目(以便下次对特定文件进行测试时,等等,它将设置一个新的,但使用新的默认值).</li>
</ol>

<p><img rel=


小智 24

Patrick Visma在http://youtrack.jetbrains.com/issue/WI-13429上发布了解决方案:

在PHPStorm中编辑phpunit.xml的配置,并设置如下的Interpreter选项:

-d auto_prepend_file=/path/to/vendor/autoload.php
Run Code Online (Sandbox Code Playgroud)


Sel*_*aek 5

我猜想PhpStorm依赖于在php.ini本身的include_path中找到PHPUnit,而不是你的项目.

您可以尝试将本地项目的vendor/bin目录添加到php.ini的include_path,但最终看起来像PhpStorm可能会受益于支持作曲家安装并运行项目本身的phpunit(如果可用).实际上他们的跟踪器上有一个问题,所以我建议您登录并提升它:http://youtrack.jetbrains.com/issue/WI-13429