对于我的测试,我需要运行带有例如一些数据库。我已经使用docker-compose设置了一切,如果容器已启动,我的测试正在运行。需要注意的是:这些不是单元测试,而是集成测试,并且允许它们运行更长时间。
从Gradle控制docker-compose的最佳方法是什么?我需要运行容器(如果没有)并启动测试。这也适用于OSX和Linux。
答案 0 :(得分:2)
我认为您可以使用exec task运行docker-compose up -d
来启动环境。
测试完成后,您可以运行docker-compose stop; docker-compose rm -f
作为清理任务(如果要停止所有内容并删除容器)。
答案 1 :(得分:0)
虽然这个问题已经有点旧了:
我写了一个插件来做你想要的。您可以在构建脚本中包含容器定义,它将直接从Gradle管理容器生命周期:
plugins {
id "com.chrisgahlert.gradle-dcompose-plugin" version "0.8.1"
}
dcompose {
database {
image = 'mysql:latest'
portBindings = ['3306:3306']
}
}
test {
dependsOn startDatabaseContainer
finalizedBy removeDatabaseContainer
}
这将在运行gradle test
之前启动MySQL数据库,然后将其删除。
有关详细信息,请参阅:https://github.com/chrisgahlert/gradle-dcompose-plugin