我在 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/