你可以使用 Jenkins Pipeline 解析 TAP 格式吗? [英] Can you parse TAP format using Jenkins Pipeline?

查看:16
本文介绍了你可以使用 Jenkins Pipeline 解析 TAP 格式吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to parse the output from a BATS script (https://github.com/gaia-adm/docker-bench-test) which outputs into TAP format. I've modified the scripts slightly to cover CIS 1.13 instead of 1.11, but I don't know how to make Jenkins Pipeline handle that output.

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

I know there is a Jenkins plugin for TAP format, but I don't believe this works with Jenkins Pipeline Groovy scripts.

推荐答案

@Grab 仅在您的 jenkins 可以访问互联网时才能工作

@Grab will work only if you jenkins has access to the internet

workspace/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

workspace/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

这篇关于你可以使用 Jenkins Pipeline 解析 TAP 格式吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆