Jenkins groovy .lang.MissingMethodException: нет сигнатуры метода: catchError () - PullRequest
0 голосов
/ 01 апреля 2020

Я использую 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"
    ])
}

1 Ответ

1 голос
/ 01 апреля 2020

catcherror с параметрами, представленными в версии 2.16 плагина workflow. Обновление должно исправить ошибку

...