Я использую Jenkins catchError
из Pipeline: Basi c Шаги (https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#catcherror -catch-error-and-set-build-result-to-fail ) в моем groovy файл. Я использую его вместо try / catch, потому что хочу установить stageResult. Однако я не могу пройти тест, который выдает ошибку:
groovy.lang.MissingMethodException: No signature of method: catchError() is applicable for argument types: (java.util.LinkedHashMap...
Мой код выглядит следующим образом:
def npmAudit(Map args) {
catchError (buildResult: 'SUCCESS', stageResult: 'UNSTABLE', message: 'vulnerabilities from npm'){
sh "npm audit"
sh "touch audit.done"
}
}
Мой тест приведен ниже. Я попытался добавить assertMethodArgsList для catchError, который закомментирован ниже, но это не сработало. Метод catchError прекрасно работает в коде, но не проходит тест.
@Test
void should_stage_npm_audit() throws Exception {
npmAudit
//assertMethodArgsList('catchError', 3, [
//buildResult: 'SUCCESS',
//stageResult: 'UNSTABLE',
//message: 'message'
//])
assertMethodArgsList('sh', 2, [
"npm audit",
"touch audit.done"
])
}