如何将INCLUDE_PATH变量设置为Behat的Composer目录下的PHPUnit库

如何将INCLUDE_PATH变量设置为Behat的Composer目录下的PHPUnit库,php,behat,Php,Behat,我在features目录下进行了一些测试。但是,当我尝试运行behat时,会出现以下错误: $ ls behat.yml features $ behat PHP Warning: Module 'memcache' already loaded in Unknown on line 0 PHP Warning: require_once(PHPUnit/Autoload.php): failed to open stream: No such file or directory in

我在features目录下进行了一些测试。但是,当我尝试运行
behat
时,会出现以下错误:

$ ls
behat.yml  features

$ behat
PHP Warning:  Module 'memcache' already loaded in Unknown on line 0
PHP Warning:  require_once(PHPUnit/Autoload.php): failed to open stream: No such file or directory in $HOME/workspace/ums/api/trunk/tests/functional/features/bootstrap/FeatureContext.php on line 24
PHP Fatal error:  require_once(): Failed opening required 'PHPUnit/Autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') in $HOME/workspace/ums/api/trunk/tests/functional/features/bootstrap/FeatureContext.php on line 24
由于PHPUnit不再可以使用PEAR进行安装,所以我最终使用了。因此,我的PHPUnit库安装在

$ sudo find / -name  PHPUnit
/HOME/.composer/vendor/phpunit/phpunit/PHPUnit
/HOME/.composer/vendor/phpunit/phpunit-mock-objects/PHPUnit
/tmp/ZendFramework-1.11.0/library/Zend/Test/PHPUnit
/tmp/ZendFramework-1.11.0/tests/Zend/Test/PHPUnit
/usr/share/php/Zend/Test/PHPUnit
/usr/share/php/Zend-2.0/Test/PHPUnit
设置
include\u path
而不更改
php.ini
文件,并且在每个
FeatureContext.php
示例类型类中不使用
set\u include\u path()
方法的最佳方法是什么


任何帮助都将不胜感激

您想使用composer附带的自动加载器。尝试添加

require_once 'path/to/vendor/autoload.php'

在使用PHPUnit之前

我在使用PHPUnit和Behat时遇到了相同的错误,我确实通过以下代码克服了这个错误:

require_once __DIR__.'/../../vendor/autoload.php';
require_once __DIR__.'/../../vendor/phpunit/phpunit/src/Framework/Assert/Functions.php';
假设“bootstrap”文件夹距离项目根目录只有一到两个文件夹。希望能有帮助

通常我在我的开发和测试(CI服务器)机器上全局安装了PHPUnit(通过composer),这样在运行测试时就不会遇到任何问题。另外,为了使我最喜欢的IDE(PhpStorm)的自动完成功能正常工作,我将该库作为开发人员的要求包含在项目的composer.json中。对于使用Behat并由团队开发的项目,最好的方法是将其包含在项目中,这样开发人员在运行测试时就不会遇到麻烦