Jenkins JUnitArchiver的坠落试验计数
我在jenkins管道脚本中使用groovy。如何从junit报告文件中获取下降的单元测试结果?现在,我尝试通过代码获取它们: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
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]