你能用Jenkins Pipeline解析TAP格式吗?

时间:2017-06-22 12:03:51

标签: jenkins groovy jenkins-pipeline tap

我试图解析输出为TAP格式的BATS脚本(https://github.com/gaia-adm/docker-bench-test)的输出。我稍微修改了脚本以覆盖CIS 1.13而不是1.11,但我不知道如何让Jenkins Pipeline处理输出。

我知道有一个用于TAP格式的Jenkins插件,但我不相信这适用于Jenkins Pipeline Groovy脚本。

2 个答案:

答案 0 :(得分:0)

  

只有当jenkins可以访问互联网时,@ Grab才能运作

<强>工作区/ JOB_NAME / tap.groovy

@Grab(group='org.tap4j', module='tap4j', version='4.2.1')

import org.tap4j.consumer.TapConsumerFactory

def parse(def src){
    return TapConsumerFactory.makeTap13Consumer().load(src)
}

return this

<强>工作区/ JOB_NAME / test.tap

1..3
ok 1 - no error
not ok 2 - io error
ok 3 - no error

管道脚本

node{
    def tap = load 'tap.groovy'
    tap = tap.parse( readFile('test.tap') )
    echo  "Number of tests found : ${tap.getNumberOfTestResults()}"
    echo  "Test Set failed?      : ${tap.containsNotOk()}"
}

<强>输出

Number of tests found : 3
Test Set failed?      : true

tap.parse()返回的对象:org.tap4j.model.TestSet

答案 1 :(得分:0)

安装了tap插件后,我能够获取声明性管道脚本,使用以下命令显示tap文件的测试结果:

stage('publish test results') {
    steps {
        step([$class: "TapPublisher", testResults: "**/reports/*.tap"])
    }
}

How do i use the "Publish TAP Results" plugin on Jenkins 2.0 Pipeline?