Jenkins JUnitArchiver的坠落试验计数

Jenkins JUnitArchiver的坠落试验计数,jenkins,groovy,jenkins-plugins,jenkins-groovy,Jenkins,Groovy,Jenkins Plugins,Jenkins Groovy,我在jenkins管道脚本中使用groovy。如何从junit报告文件中获取下降的单元测试结果?现在,我尝试通过代码获取它们: import hudson.tasks.junit.TestResultAction import hudson.model.* import java.* import java.lang.* import hudson.* import hudson.model.* import jenkins.model.Jenkins …一些代码 dir (workspace

我在jenkins管道脚本中使用groovy。如何从junit报告文件中获取下降的单元测试结果?现在,我尝试通过代码获取它们:

import hudson.tasks.junit.TestResultAction
import hudson.model.*
import java.*
import java.lang.*
import hudson.*
import hudson.model.*
import jenkins.model.Jenkins
…一些代码

dir (workspace){                 
    step([$class: 'JUnitResultArchiver', keepLongStdio: true, testResults: "artifacts/*/*.xml"])
    result_junit = count_fail_unit_tests()
    echo "UNIT TESTS FAIL COUNT: ${result_junit}"                     
    if (result_junit != 0){
            currentBuild.displayName = "UNIT TESTS FAIL"
        }
    throw new Exception("warning_exception")
    }
archiveArtifacts allowEmptyArchive: true, artifacts: "log/*", caseSensitive: false
}


@NonCPS
def count_fail_unit_tests() {           
    def count_fail_tests = manager.build.getAction(hudson.tasks.junit.TestResultAction.class).getFailCount()
    return count_fail_tests
}
我犯了一个错误

错误:groovy.lang.MissingPropertyException:没有这样的属性:manager 课程名称:Script4

早些时候,我通过代码获得了错误计数:

dir (workspace){
    result_junit = junit keepLongStdio: true, testResults: "artifacts/*/*.xml"
    echo "UNIT TESTS FAIL COUNT: ${result_junit}"                     
    if (result_junit != 0){
            currentBuild.displayName = "UNIT TESTS FAIL"
        }
    throw new Exception("warning_exception")
    }
archiveArtifacts allowEmptyArchive: true, artifacts: "log/*", caseSensitive: false
}
它还在工作,但有个bug: 如果使用
junit keepLongStdio:true,testResults:“artifacts/*/*.xml”
和report.xml文件的结构不正确,构建没有失败,并保持“SUCCESS”状态。 使用
步骤([$class:'JUnitResultArchiver',keepLongStdio:true,testResults:'artifacts/*/*.xml“])
失败了,这就是为什么我想使用这个方法。 如果我尝试

some_return = step([$class: 'JUnitResultArchiver', keepLongStdio: true, testResults: "artifacts/*/*.xml"]) 
echo "${some_return}"
得到

空的

如果xml junit报告不正确,是否有一些方法使junit keepLongStdio:true、testResults:“artifacts/*/*.xml”构建失败? 或者我怎么能从你的

step([$class: 'JUnitResultArchiver', keepLongStdio: true, testResults: "artifacts/*/*.xml"])

尝试使用
currentBuild.rawBuild
代替
manager.build
。尝试此操作后,出现另一个错误:[错误:org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用方法hudson.tasks.test.AbstractTestResultAction getFailCount]@zett42感谢您的回答,我尝试了这个
currentBuild.rawBuild.getAction(hudson.tasks.junit.TestResultAction.class).getFailCount()并出现另一个错误:[错误:org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:不允许脚本使用方法hudson.tasks.test.AbstractTestResultAction getFailCount]