Database 在Symfony2中正确安装PHPUnit数据库扩展
我已经为我的配置挣扎了两天了 当我从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联机 三十九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\
我的环境正在尝试为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"
);