我在groovy文件中使用了Pipeline:Basic Steps(https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#catcherror-catch-error-and-set-build-result-to-failure)中的Jenkins catchError
。
我使用它而不是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"
}
}
我的测试如下。我试图为catchError添加一个assertMethodArgsList,下面将其注释掉,但这没有用。 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"
])
}
答案 0 :(得分:1)
catcherror。更新应解决错误