如何在Symfony 1.4单元测试中启用Doctrine查询日志记录

时间:2013-02-22 17:59:35

标签: unit-testing logging doctrine symfony-1.4

我是单元测试模型类,我希望记录所有Doctrine查询。 我的测试环境的settings.yml包含

logging_enabled: true

和我的剧本

$configuration = ProjectConfiguration::getApplicationConfiguration( 'frontend', 'test', true);
new sfDatabaseManager( $configuration ) ;

但是,我没有在任何日志文件中看到任何日志。

1 个答案:

答案 0 :(得分:2)

因此,我通过在Doctrine探查器上使用事件监听器找到了一种解决方法。

$profiler = new Doctrine_Connection_Profiler();
$conn = Doctrine_Manager::connection();
$conn->setListener($profiler);

/* tests go here */

foreach ($profiler as $event) {
    echo $event->getQuery() . "\n";
}

但由于某种原因,同一个查询被多次打印出来(我确信它只执行一次)。此外,将查询日志与其余日志消息分离是不方便的。