grails - 如何在 grails 3 中为单元测试设置 mysql db

标签 grails grails3.2.0

我在 application.yml 中使用了以下代码

environments:
  test:
        dataSource:
            dbCreate: none
            url: jdbc:mysql://<<IP>>/unit_test_db
            username: ****
            password: ****

仍然 grails 使用内存数据库进行单元测试。

最佳答案

那可能是因为您的测试是在开发环境中运行的。可能导致这种情况的一件事是,如果您直接从 IDE 以这样的方式运行测试,grails.env未设置为 test .如果您使用 Gradle 运行测试,这会自动发生。我在 https://blog.jetbrains.com/idea/2017/07/webinar-recording-why-intellij-idea-is-the-premier-ide-for-grails-3/ 视频的 36:00 左右讨论这个问题。 .如果您使用 IntelliJ,这可能会有所帮助。解决此问题的另一种方法是将 IDE 配置为将测试运行委托(delegate)给 Gradle。如果您使用不同的 IDE,同样的想法也适用,但如何解决问题的详细信息将取决于您使用的 IDE。

如果您在从 Gradle 运行时遇到同样的问题,那么您的项目中可能存在某些配置错误,并且在不了解项目的更多信息的情况下可能难以识别其中的细节。

我希望这会有所帮助。

关于grails - 如何在 grails 3 中为单元测试设置 mysql db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56934660/

相关文章:

grails - 如何在单元测试下的 Grails 服务中注入(inject)字段的模拟(使用 Autowiring )?

ubuntu - 无法在 Tomcat 7 和 Ubuntu 中部署 grails 3 war - 404 错误

grails - 在Grails中找到对集合的共享引用

layout - 在布局上获取域变量

tomcat - 无法启动应用程序 : grails 3 + tomcat 8

grails - 注册自定义约束

grails - Grails 3 WAR部署服务器先决条件

grails - 使用 'join'第三类使许多人陷入困境

grails - 呈现 View ,但gsp中没有对象

grails - 如何在 Grails 中创建动态域类