如何在 Jenkins 中允许 catchError?
How to allow catchError in Jenkins?
所以我通过在他们的一个 groovy 文件中添加一个 catchError
语句来解决我的组织的一个需求,但这反过来会产生一个通用 Jenkins 测试库的构建错误 BasePipelineTest
:
[main] ERROR org.apache.maven.plugin.surefire.SurefirePlugin - PipelineTest.testCall_AllFieldsAvailable:71 ? MissingMethod No signature
[main] ERROR org.apache.maven.plugin.surefire.SurefirePlugin - PipelineTest.testCall_FieldsNotAvailable:130 ? MissingMethod No signature
作为 Jenkins 标准的一部分 BasePipelineTest
class 解决方案通常是:
helper.registerAllowedMethod("cleanWs", []) {}
对于 cleanWs()
之类的方法,或类似的方法,具体取决于方法及其输入。然而,这是针对具有输入值的方法,但 catchError
没有输入值,而是像这样完成的:
catchError {
...
}
所以helper.registerAllowedMethod("catchError", []) {}
是行不通的。有谁知道如何让它为 catchError
?
这样的东西工作
我也尝试过:
helper.registerAllowedMethod("catchError", [com.lesfurets.jenkins.unit.catchError]) {}
这会造成 MissingProperty
错误
原来大括号本身在 groovy 中注册为 class。我修复了它:
helper.registerAllowedMethod("catchError", [Closure.class]) {}
所以我通过在他们的一个 groovy 文件中添加一个 catchError
语句来解决我的组织的一个需求,但这反过来会产生一个通用 Jenkins 测试库的构建错误 BasePipelineTest
:
[main] ERROR org.apache.maven.plugin.surefire.SurefirePlugin - PipelineTest.testCall_AllFieldsAvailable:71 ? MissingMethod No signature
[main] ERROR org.apache.maven.plugin.surefire.SurefirePlugin - PipelineTest.testCall_FieldsNotAvailable:130 ? MissingMethod No signature
作为 Jenkins 标准的一部分 BasePipelineTest
class 解决方案通常是:
helper.registerAllowedMethod("cleanWs", []) {}
对于 cleanWs()
之类的方法,或类似的方法,具体取决于方法及其输入。然而,这是针对具有输入值的方法,但 catchError
没有输入值,而是像这样完成的:
catchError {
...
}
所以helper.registerAllowedMethod("catchError", []) {}
是行不通的。有谁知道如何让它为 catchError
?
我也尝试过:
helper.registerAllowedMethod("catchError", [com.lesfurets.jenkins.unit.catchError]) {}
这会造成 MissingProperty
错误
原来大括号本身在 groovy 中注册为 class。我修复了它:
helper.registerAllowedMethod("catchError", [Closure.class]) {}