0

我在 Jenkins 中使用声明式管道,我有 200 多个测试。我想将它们拆分为多台机器。我有一段代码必须修复,但我不知道如何修复。文档不是很好。有人可以解释一下这些代码行中发生了什么吗?

    def splits = splitTests parallelism: [$class: 'CountDrivenParallelism', size: 3], generateInclusions: true

    def Groups = [:]

    for (int i = 0; i < splits.size(); i++) {

        def split = splits[i]

        Groups["split-${i}"]
  • splitTests 是一种语言功能,但并行性?
  • $Class 'CountDrivenParallelism',他在这里创建了一个类?
  • 什么是组或此运算符 [:]
4

1 回答 1

1

splitTests 是一个 Groovy 方法,来自 Jenkins 的Parallel Test Executor Pluginhttps://wiki.jenkins.io/display/JENKINS/Parallel+Test+Executor+Plugin

在 Groovy 中,您不必为方法调用使用括号,但您可以编写与此相同的行:

def splits = splitTests(并行度:[$class:'CountDrivenParallelism',大小:3],generateInclusions:true)

该方法的参数是一个 Map,具有 3 个键:parallelism、size 和 generateInclusions。

$Class 'CountDrivenParallelism'

告诉插件应该使用哪个实现来并行化测试。

def 组 = [:]

定义一个名为 Groups 的新局部变量,并使用新的 HashMap 对其进行初始化。[:] 是 Groovy 中 Map 的缩写。

见外汇。这篇文章描述了您发布的代码:https ://jenkins.io/blog/2016/06/16/parallel-test-executor-plugin/以及它的作用

于 2018-08-30T12:03:58.677 回答