我的项目有两个子项目,我的大部分测试都依赖于数据库连接。由于 postgres 是目标数据库,我也想在我的 junit 测试中使用它。在开始测试套件(所有测试)之前,我想用一些值(重新)构建和初始化数据库。
在执行gradle build
之前,我可以从命令行执行psql -h host -d database -u usrname -f filename
。
我如何将其合并到 gradle 测试任务中? (我正在使用 junit 4,如果这很重要的话)
最佳答案
解决方案1:
在您的根项目中定义“psql”任务
task psql (type:Exec) {
commandLine 'psql', '-h', 'host', '-d', 'database', '-u', 'usrname', '-f' , 'filename'
}
如果您希望此任务仅运行一次,请在您的根项目中添加以下内容
test.dependsOn psql
如果您希望为每个子项目运行此任务,请在相应的子项目中添加以下内容
test.dependsOn(rootProject.tasks.psql)
解决方案2:
使用configuration injection 。只需在您的根项目中添加以下内容即可:
subprojects {
task psql (type:Exec) {
commandLine 'psql', '-h', 'host', '-d', 'database', '-u', 'usrname', '-f' , 'filename'
}
test.dependsOn(psql)
}
解决方案3:
使用 iso 任务方法,但我猜这不是“gradle”。 请参阅inherited_properties_and_methods了解更多信息
关于database - 如何在使用gradle测试之前重建数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20243440/