如何测试 Jenkinsfile
How to test Jenkinsfile
我正在尝试编写测试用例来验证 Jenkinsfile,但是加载脚本函数无法正常工作,期望提供扩展并抛出 ResourceException 异常 loadScript("Jenkinsfile")
是他们测试 Jenkinsfile 的更好方法
问题是没有足够的工具来开发流水线。管道是 DSL,它施加了限制。
有一种使用标志的有趣方法。例如,test
定义了外部管道(在作业中)。如果 test=true
,管道将一些 "production" 逻辑更改为 "test" - select 另一个代理,将工件加载到另一个存储库,运行 另一个命令等等。
不过最近出现了Pipeline Unit Testing Framework。它允许您在完整 运行 之前对管道和共享库进行单元测试。它提供了一个模拟执行环境,其中真实的流水线步骤被替换为模拟对象,您可以使用这些模拟对象来检查预期行为。
有用的链接:
感谢 Jenkins,您可以在本地验证您的声明式管道 built-in features.This 可以使用 Jenkins CLI 命令或通过使用适当参数发出 HTTP POST 请求来完成。
命令如下:
curl -s -X POST -F "jenkinsfile=<YourJenkinsfile" \
https://user:password@jenkins.example.com/pipeline-model-converter/validate
有关实际示例,请遵循本指南:
https://pillsfromtheweb.blogspot.com/2020/10/validate-jenkinsfile.html
我正在尝试编写测试用例来验证 Jenkinsfile,但是加载脚本函数无法正常工作,期望提供扩展并抛出 ResourceException 异常 loadScript("Jenkinsfile")
是他们测试 Jenkinsfile 的更好方法
问题是没有足够的工具来开发流水线。管道是 DSL,它施加了限制。
有一种使用标志的有趣方法。例如,test
定义了外部管道(在作业中)。如果 test=true
,管道将一些 "production" 逻辑更改为 "test" - select 另一个代理,将工件加载到另一个存储库,运行 另一个命令等等。
不过最近出现了Pipeline Unit Testing Framework。它允许您在完整 运行 之前对管道和共享库进行单元测试。它提供了一个模拟执行环境,其中真实的流水线步骤被替换为模拟对象,您可以使用这些模拟对象来检查预期行为。
有用的链接:
感谢 Jenkins,您可以在本地验证您的声明式管道 built-in features.This 可以使用 Jenkins CLI 命令或通过使用适当参数发出 HTTP POST 请求来完成。
命令如下:
curl -s -X POST -F "jenkinsfile=<YourJenkinsfile" \
https://user:password@jenkins.example.com/pipeline-model-converter/validate
有关实际示例,请遵循本指南: https://pillsfromtheweb.blogspot.com/2020/10/validate-jenkinsfile.html