Composer没有创建所有需要的phpunit包含路径


Composer not creating all needed phpunit include paths

这与这个SO问题类似,但它表现为composer而不是pear。

我的相关composer.json行:

"require-dev": {
    "phpunit/phpunit": "3.7.14",
    "symfony/browser-kit": ">=2.3,<2.4-dev"
},

在vendor/composer:中创建此include_paths.php文件

return array(
    $vendorDir . '/phpunit/phpunit-mock-objects',
    $vendorDir . '/phpunit/php-timer',
    $vendorDir . '/phpunit/php-token-stream',
    $vendorDir . '/phpunit/php-code-coverage',
    $vendorDir . '/phpunit/phpunit',
    $vendorDir . '/symfony/yaml',
);

运行"phpvendor/bin/phpunit"会触发错误:

PHPUnit_Framework_Exception:PHP警告:require_one(File/Iterator/Autoload.php):无法打开流:否中的此类文件或目录/路径/to/project/vvendor/phpunit/phpunit/phpunit/Autoload.php在线45

我可以通过手动将丢失的include路径添加到数组中来解决这个问题,比如:

$vendorDir . '/phpunit/php-file-iterator',

但下次我运行Composer时,这种情况就会消失。

我猜我的composer.json中有一个错误,但我真的想不出它是什么。

我建议更新到最新的3.7 PHPUnit。使用Composer做这件事很容易,只需要3.7.*允许该版本的未来更新(尽管不太可能发生,因为PHPUnit的开发目前正在维护4.2,稳定4.3,并在4.4上工作)

比较使用PHPUnit 3.7.14和最近的3.7.37之间的成功,PHPUnit中的一些内部错误修复可能解决了这个问题。