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

时间:2014-09-09 21:05:33

标签: php phpunit composer-php

这类似于this SO question,但它表现在作曲家而不是梨。

我的相关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',
);

运行“php vendor / bin / phpunit”会触发错误:

  

PHPUnit_Framework_Exception:PHP警告:   require_once(File / Iterator / Autoload.php):无法打开流:否   这样的文件或目录   /path/to/project/vendor/phpunit/phpunit/PHPUnit/Autoload.php   第45行

我可以通过手动将缺少的包含路径添加到数组中来解决问题,如:

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

但是下次我运行Composer时会消失。

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

1 个答案:

答案 0 :(得分:1)

我建议更新到最新的3.7 PHPUnit。使用Composer执行此操作很简单,只需要3.7.*以允许将来更新该版本(尽管它们不太可能发生,因为PHPUnit的开发目前正在维护4.2,稳定4.3并继续使用4.4)。

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