从管道中的另一个jenkins作业中获取已通过和失败的jenkins测试的数量

时间:2018-01-24 17:39:51

标签: jenkins groovy jenkins-pipeline

我从jenkins管道开始Jenkins工作job_name1

build job: 'job_name1', parameters: [ string(name: 'name1', value: 'value1') ], propagate: false

作业job_name1已被执行,并且已通过10次通过10次JUnit测试失败。

如何获得通过和未通过测试的数量? 我试过了:

import hudson.model.Run
import hudson.tasks.junit.TestResultAction
import org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper
import hudson.model.Action

node("node_name")
{
   def my_build = build(job: 'job_name1', parameters: [ string(name: 'name1', value: 'value1') ], propagate: false,)
   defresults = (my_build as Run).getAction(TestResultAction) 
   def allTests = results.getResult()
   def failedTests = results.getFailCount()
}

并获得以下错误

hudson.remoting.ProxyException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper@7c845e2' with class 'org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper' to class 'hudson.model.Run'

我该怎么办? 是否有可能以不同的方式做到这一点?

1 个答案:

答案 0 :(得分:0)

您应该致电RunWrapper#getRawBuild以获取实际的Run对象

defresults = my_build.rawBuild.getAction(TestResultAction)