Я использую groovy в сценариях конвейера jenkins. Как я могу взять результаты падений юнит-тестов из файла отчета 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: Нет такого свойства: менеджер для класса: 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
}
, и это было работал, но имел ошибку: при использовании junit keepLongStdio: true, testResults: "artifacts/*/*.xml"
и отчета. xml файл имеет неправильную структуру, сборка не дает сбоев и остается в статусе «УСПЕХ». С использованием step([$class: 'JUnitResultArchiver', keepLongStdio: true, testResults: "artifacts/*/*.xml"])
он не работает, поэтому я хочу использовать этот метод. Если я попытаюсь
some_return = step([$class: 'JUnitResultArchiver', keepLongStdio: true, testResults: "artifacts/*/*.xml"])
echo "${some_return}"
получить
null
Есть ли какие-нибудь методы для junit keepLongStdio: true, testResults: "artifacts/*/*.xml"
для сбоя сборки, если xml junit report это неверно? Или как я могу считать от
step([$class: 'JUnitResultArchiver', keepLongStdio: true, testResults: "artifacts/*/*.xml"])