我的项目有两个子项目,我的大部分测试都依赖于数据库连接。由于postgres是目标数据库,我也想在我的junit测试中使用它。在开始testsuite(所有测试)之前,我想(重新)使用一些值来构建和初始化数据库。
从命令行开始,我可以在psql -h host -d database -u usrname -f filename
之前执行gradle build
。
如何将其纳入gradle测试任务中? (我正在使用junit 4,如果这很重要的话)
答案 0 :(得分:3)
在 root 项目中定义'psql'任务
task psql (type:Exec) {
commandLine 'psql', '-h', 'host', '-d', 'database', '-u', 'usrname', '-f' , 'filename'
}
如果您希望此任务仅运行一次,请在 root 项目中添加以下内容
test.dependsOn psql
如果您希望为每个子项目运行此任务,请在相应的子项目中添加以下内容
test.dependsOn(rootProject.tasks.psql)
使用configuration injection。只需在 root 项目中添加以下内容:
subprojects {
task psql (type:Exec) {
commandLine 'psql', '-h', 'host', '-d', 'database', '-u', 'usrname', '-f' , 'filename'
}
test.dependsOn(psql)
}
使用方法iso任务,但我猜这不是'gradle'。 有关详细信息,请参阅inherited_properties_and_methods