这与这个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中的一些内部错误修复可能解决了这个问题。