Phpunit从未知的地方抓取Doctrine2配置

时间:2014-05-07 21:39:48

标签: php doctrine-orm zend-framework2 phpunit

我正在使用ZF2 + Doctrine2 + PHPUNIT,在设置Phpunit时,它适用于基本测试,但是当我尝试运行调用Doctrine2的测试时,我得到:

PDOException: SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)

但是,我从未指定“username”或“localhost”,也没有指定任何密码。事实上,我的应用程序运行完全正常,我配置完全不同的设置。

那么PHPUnit在哪里获取这些设置以及如何解决它?

我的global.php:

'doctrine' => array(
    'connection' => array(
        'orm_default' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
            'params' => array(
                'host' => '127.0.0.1',
                'port' => '3306',
                'user' => 'sbapp',
                'password' => 'myp@ss',
                'dbname' => 'root'
            )
        )
    ),

测试:

class ApplicationControllerTest extends AbstractHttpControllerTestCase
{
    protected $traceError = true;

    public function setUp()
    {
        $this->setApplicationConfig(
            include '../../../config/application.config.php'
        );

        parent::setUp();
    }

    public function testAuthActionCanBeAccessed()
    {
        $postData = new \stdClass();
        $postData->username = "someAppUser";
        $postData->password = "12345";
        $postData = json_decode(json_encode($postData),true);

        $this->dispatch('/auth', 'POST', $postData);

        $response = $this->getResponse();

        $this->assertResponseStatusCode(200);
        $this->assertActionName('auth');
    }
}

1 个答案:

答案 0 :(得分:0)

错误地完成setUp上配置中使用的相对路径会严重影响实体的加载等。所以我正在追逐正确的道路..从root..or或者从供应商......或者从测试文件夹中调用phpunit等。

解决方案:

从项目根目录中调用它,并将路径保留为主项目。