PHPStorm 有一个自定义的 PHPUnit 运行脚本 ( ide-phpunit.php
),它在内部使用它来处理不同版本的 PHPUnit 并进行 IDE 集成,并且仅依赖于包含路径和PEAR
文件夹布局。
为此,它执行:
public static function checkIncludePath()
{
//check include path
$PHPUnitParentDirectory = self::getPHPUnitParentDirectory();
if (is_null($PHPUnitParentDirectory)) {
echo "Cannot find PHPUnit in include path (" . ini_get('include_path') . ")";
exit(IDE_PHPUnit_Loader::FAILURE_EXIT);
}
}
/**
* @return null | string
*/
private static function getPHPUnitParentDirectory()
{
$pathArray = explode(PATH_SEPARATOR, ini_get('include_path'));
foreach ($pathArray as $path)
{
if (file_exists($path . DIRECTORY_SEPARATOR . 'PHPUnit/')) {
return $path;
}
}
return null;
}
您可以通过 composer 安装它并将其添加为普通的可执行文件(ant/phing/native 任务),但您将失去 PHPStorm 提供的所有闪亮功能,如进度条、跳转到失败的测试和代码覆盖支持。
因此,从代码中您可以看出您需要将名为 named 的文件夹添加PHPUnit
到包含路径中的某个位置。添加供应商可能会有所帮助,但请记住,这样做时需要匹配大小写。
在 PHPStorm 支持使用 composer 或 phar 中的 PHPUnit 之前,我认为使用 pear 中的 PHPUnit 不会获得更好的集成 ( http://youtrack.jetbrains.com/issue/WI-13429
),但破解包含路径可能会奏效。
PHPStorm 人员对 3.7 的 runner 进行了一些更新,并且通常对 PHPUnit 的变化非常敏感:)