如何自动测试不同版本的罐子?

时间:2017-01-13 15:25:38

标签: java unit-testing gradle jar

我想自动测试在同一个项目中工作的不同版本的库。

有可能吗?

我可以在Gradle中更改版本并针对每种组合运行测试吗?

2 个答案:

答案 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分支的每个测试分支重新定位并运行测试。