Database 在Symfony2中正确安装PHPUnit数据库扩展

Database 在Symfony2中正确安装PHPUnit数据库扩展,database,symfony,phpunit,symfony-2.2,Database,Symfony,Phpunit,Symfony 2.2,我已经为我的配置挣扎了两天了 当我从bash模拟器启动phpunit时(在Windows7下工作) bin/phpunit-c应用程序 我得到了以下错误: 从C:\wamp\www\myproject\app\phpunit.xml.dist读取配置 …PHP致命错误:类 'myproject\Business\Tests\Entity\PHPUnit\u Extensions\u数据库 在中找不到e_DataSet_YamlDataSet' C:\wamp\www\myproject\src\

我已经为我的配置挣扎了两天了

当我从bash模拟器启动phpunit时(在Windows7下工作)

bin/phpunit-c应用程序

我得到了以下错误:

从C:\wamp\www\myproject\app\phpunit.xml.dist读取配置

…PHP致命错误:类 'myproject\Business\Tests\Entity\PHPUnit\u Extensions\u数据库 在中找不到e_DataSet_YamlDataSet' C:\wamp\www\myproject\src\myproject\Business\Tests\eUserManagerTest.php联机 三十九


我的环境正在尝试为PHPUnit\u Extensions\u Database\u DataSet\u YamlDataSet的路径添加后缀 myproject\Business\Tests\Entity,而require\u once语句指定这是在PHPUnit/Extensions/Database/DataSet/YamlDataSet.php中定义的。

下面的“新”陈述导致了这一错误的完成:


    namespace myproject\Business\Tests\Entity;

    require_once "PHPUnit/Autoload.php";
    require_once "PHPUnit/Extensions/Database/Autoload.php";
    require_once "PHPUnit/Extensions/Database/DataSet/YamlDataSet.php';

    use \PDO;
    use myproject\Business\Entity\eUserManager;

    class eUserManagerTest extends \PHPUnit_Extensions_Database_TestCase
    {    
       ...

        /**
         * @return PHPUnit_Extensions_Database_DataSet_IDataSet
         */
        protected function getDataSet()
        {
            return new PHPUnit_Extensions_Database_DataSet_YamlDataSet(
                    dirname(__FILE__)."/eusertable.yml"
                    );
        }


我的问题是要弄清楚为什么会这样!ù%它没有在正确的路径中查找(如require_once中所定义)

可能是线索:我在文件树中发现了两个不同的phpunit exe文件:

/c/wamp/www/myproject/bin/phpunit

/c/wamp/bin/php/php5.4.3/phpunit

我认为第一个是在我安装phpunit时创建的,我在composer.json文件中声明了它,然后启动:

作曲家更新

这适用于不涉及数据库的单元测试,方法是启动:

bin/phpunit-c应用程序

第二个已通过pear安装,如phpunit文档所述:

数据库处理的类定义位于第二个位置:
/c/wamp/bin/php/php5.4.3/phpunit/pear/phpunit/Extensions/Database

这就是我希望php在实例化我的类时要注意的地方

因此,我的提示是,问题可能与此双重phpunit安装有关(一个在symfony中,另一个在php5.4.3目录中)

我做得好吗?
我的安装过程中有错误吗?
Symfony是如何通过pear知道此数据库扩展安装的?

注:启动:

/c/wamp/bin/php/php5.4.3/phpunit-c应用程序

来自/c/wamp/www/myproject的消息给出了以下错误: sh.exe“:/c/wamp/bin/php/php5.4.3/phpunit:。\php.exe:错误的解释器:没有这样的文件或目录


感谢您的帮助

我自己偶然发现了解决方案,但不了解我的意图。实际上,PHPUnit类是在PHP的全局空间中声明的,而不是在特定的命名空间中声明的。要指定此类,需要在类名前添加“\”,以便PHP可以查看此全局空间

因此,解决方案是写:

返回新的\PHPUnit\u扩展\u数据库\u数据集\u YamlDataSet(
目录名(文件)。“/eusertable.yml”
);

return new \PHPUnit_Extensions_Database_DataSet_YamlDataSet( dirname(FILE)."/eusertable.yml" );