PHPStorm 8和PHPUnit与@runInSeparateProcess有关

时间:2015-10-23 09:34:52

标签: phpunit phpstorm

我正在从PHPStorm 8运行phpunit(composer provisioned和version 4.8)。通常它工作正常,但每当我需要使用@runInSeparateProcess注释时,它就会开始尖叫这个错误:

Fatal error: Class 'PHPUnit_Util_Configuration' not found in - on line 334

Call Stack:
0.0013     395808   1. {main}() -:0

IDE上的PHPUnit配置如下:

  • 语言&框架> PHP> PHPunit:指向代码库的自定义自动加载器 /vendor/autoload.php
  • 运行/调试配置:指向我本地phpunit.xml的备用配置文件

这是配置的内容:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.2/phpunit.xsd"
         colors="true"
         bootstrap="./vendor/autoload.php"
         backupGlobals="false"
         backupStaticAttributes="false"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false"
         syntaxCheck="false">

    <testsuites>
        <testsuite name="My Project">
            <directory>./tests</directory>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist>
            <directory suffix=".php">./src</directory>
        </whitelist>
    </filter>
</phpunit>

测试从命令行运行,具有相同的phpunit可执行文件和相同的配置文件。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

显然删除所有依赖项并从composer(phpunit 4.8.6)重新安装phpunit解决了这个问题。

答案 1 :(得分:1)

对Drupal的人员使用(https://www.drupal.org/node/2597814

进行修改

添加到您的boostrap文件的顶部:

if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
    define('PHPUNIT_COMPOSER_INSTALL', __DIR__ . '/path/to/composer/vendors/dir/autoload.php');
}

我尝试了很多其他方法,包括升级PHPStorm和上/下评级PHPUnit。这很有效。