2013-02-22 60 views
1

我是单元测试模型类,我希望记录所有Doctrine查询。 我的测试环境settings.yml中包含如何在Symfony 1.4单元测试中启用Doctrine查询日志记录

logging_enabled: true 

和我的脚本

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

不过,我没有看到任何记录任何日志文件中。

回答

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"; 
} 

但是,出于某种原因(我相信它只执行一次),相同的查询打印出来几次。另外,将查询日志与其他日志消息分离并不方便。