【问题标题】:Grails print Hibernate debug log in test caseGrails 在测试用例中打印 Hibernate 调试日志
【发布时间】:2013-07-10 09:24:04
【问题描述】:

我可以知道如何在 Grails 测试用例运行中打印出 Hibernate 调试日志。

我已经在DataSource.groovy配置了

dataSource {
    ...
    logSql = true 
}

environments {
 ... 
    test {
        dataSource {
           dbCreate = "none"
           url = "jdbc:mysql://localhost/church?useUnicode=yes&characterEncoding=UTF-8"
        logSql = true
         }
     hibernate {
       show_sql = true
         }
     }
 ...
}

并使用记录器在测试用例和控制器类中写入日志,但我在测试用例控制台中看不到相应的Hibernate 调试日志。

请指教。谢谢!

【问题讨论】:

  • “休眠调试日志”是什么意思?
  • 谢谢!表示 SQL 打印输出和相关的打印输出跟踪。
  • 我已经配置了 dataSource { dbCreate = ... url = ... ... logSql = true } 和 log4j = { ... debug 'org.hibernate.SQL' trace 'org.hibernate .type' } 我希望在运行测试用例时看到一些休眠 SQL 打印输出。我可以在运行时部署中找到打印输出,但在运行测试用例中找不到。非常感谢!
  • 你在DataSource的测试环境下添加logSql了吗?
  • 我已经在测试环境中添加了,但仍然没有任何打印输出。请帮忙。环境 { .... 测试 { 数据源 { dbCreate = "none" url = "jdbc:mysql://localhost/church?useUnicode=yes&characterEncoding=UTF-8" logSql = true } hibernate { show_sql = true } }... . }

标签: hibernate testing grails


【解决方案1】:

感谢 dmahapatro。 在我将测试用例移到 test/integration 文件夹下之后。有用。 我没有注意到单元测试不能与休眠一起使用。 只是交叉检查了 grails 文档,它指出

在测试使用域类的非域工件时,最好使用此处描述的模拟支持,让您专注于测试工件而不需要数据库。但在测试持久性时,最好使用配置 Hibernate 并使用数据库的集成测试。

http://grails.org/doc/latest/guide/testing.html#unitTestingDomains

【讨论】:

    【解决方案2】:

    如果你使用 HibernateSpec,你可以在单元测试中使用它。 DomainUnitTest 在内存映射中使用,但 HibernateSpec 使用休眠和内存中的 h2。 请参阅文档here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 2011-08-30
      • 2022-07-06
      • 1970-01-01
      • 2021-10-28
      • 2017-05-21
      • 2011-06-03
      相关资源
      最近更新 更多