gpt4 book ai didi

java - 测试时指定数据库

转载 作者:行者123 更新时间:2023-11-29 13:12:22 25 4
gpt4 key购买 nike

我想在不更改数据库的情况下运行模型测试。我使用的是没有进化的 mysql 数据库。

是否可以为我的测试指定不同的数据库?或者将 mysql 模式复制到内存数据库中?

我尝试制作一个单独的配置并像这样使用它:

play test -Dconfig.resource=application.test.conf

没有利润。

最佳答案

您可以在 Play 应用程序中使用多个数据库。这里我给出了应用程序中三个数据库的示例。(prod,dev,test)

编写用于生产的conf文件(在conf目录中)

prod.conf

include "application.conf"

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/productiondatabase"
db.default.user="postgres"
db.default.password="postgres"

编写开发conf文件

dev.conf

include "application.conf"

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/developmentdatabase"
db.default.user="postgres"
db.default.password="postgres"

编写conf文件进行测试

测试.conf

include "application.conf"

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:test"
db.default.user=sa
db.default.password=""

现在编写Global.scala(在应用程序目录中)

import play.api._  
import play.api.Logger
import com.typesafe.config.ConfigFactory
import java.io.File

object Global extends GlobalSettings {

override def onLoadConfig(config: Configuration, path: File, classloader: ClassLoader,mode: Mode.Mode): Configuration = {

Logger.info("Application configuration file is loading with " + mode.toString + " mode")

val modeSpecificConfig = config ++ Configuration(ConfigFactory.load(s"${mode.toString.toLowerCase}.conf"))
super.onLoadConfig(modeSpecificConfig, path, classloader, mode)

}
}

$ play test => 它会自动连接到测试数据库。

$ play run => 它会自动连接到开发数据库。

$ play start =>它会自动连接到prod数据库。

关于java - 测试时指定数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com