我想自动测试在同一个项目中工作的不同版本的库。
有可能吗?
我可以在Gradle中更改版本并针对每种组合运行测试吗?
答案 0 :(得分:1)
您可以在命令行上传递一个版本
gradle build -PfooVersion=1.0 -barVersion=2.0
然后在你的gradle脚本中
dependencies {
compile "x:foo:${fooVersion}"
compile "y:bar:${barVersion}"
}
然后您可以编写要运行的各种组合的脚本
注意:有一个GradleBuild任务可以执行另一个gradle构建,因此您可以让一个gradle构建使用不同的参数组合多次执行另一个gradle构建。例如:
apply plugin: 'base'
def allFooVersions = ['1.0', '2.0', 3.0']
def allBarVersions = ['1.1', '2.2']
[allFooVersions, allBarVersions].eachCombination { combination ->
// create a task for each combination
GradleBuild task = tasks.create("combination${combination}", GradleBuild)
task.buildFile = 'path/to/build.gradle'
task.startParameter.projectProperties = [
fooVersion: combination[0],
barVersion: combination[1]
]
task.tasks = ['test']
// wire the task into the dag
check.dependsOn task
}
答案 1 :(得分:0)
您的SCM中可以有不同的分支,每个分支都在gradle构建文件中定义。
然后你冷却了一个构建服务器,它将你的dev分支的每个测试分支重新定位并运行测试。