在Grails 3.3.1单元测试中记录SQL

时间:2018-04-27 14:14:06

标签: testing grails logging

在Grails 3.3.1中运行单元测试时,如何查看SQL日志记录?我可以使用以下设置正常运行应用程序时查看SQL日志记录。

application.yml

    hibernate:
        format_sql: true


    test:
        dataSource:
              logSql: true
    development:
        dataSource:
              logSql: true

logback.groovy

logger 'org.hibernate.type.descriptor.sql.BasicBinder', TRACE, ['STDOUT']
logger 'org.hibernate.SQL', TRACE, ['STDOUT']

2 个答案:

答案 0 :(得分:0)

运行单元测试时不应该命中数据库。所有外部交互如DB等都应该被嘲笑。

集成和功能测试更适合验证向DB发送的查询。

请参阅documentation

答案 1 :(得分:0)

我需要在单元测试中使用HibernateSpec而不仅仅是Specification。然后使用上面的SQL日志记录将起作用。

class MyServiceSpec extends HibernateSpec implements ServiceUnitTest<MyService>