jenkins pipeline + gitlab

2021-02-01 15:40:32 +08:00
 tibifide

背景:公司开发用的是 java,项目 A ;测试接口自动化用的 python,项目 B 。打算做持续集成,期望达到的效果是任何一名开发人员提交代码后会去触发 pipeline 的执行,pipeline 就包含两步 build + test,然后将 test 的失败结果通知到开发,达到一种快速反馈的效果。 有个问题:A 开发在某次迭代的时候开发了一些功能,比如 F1 、F2 、F3,push 代码的时候,如何只执行 F1 、F2 、F3 对应接口测试呢? 不能执行全量的测试,因为其他开发人员可能有些 function 还没有开发完成,但是这时测试代码已经开发完成了,这个时候去执行未开发完成的功能肯定跑不通。

1041 次点击
所在节点    问与答
12 条回复
themostlazyman
2021-02-01 16:00:27 +08:00
感觉 dev 环境不用跑测试,谁提交了代码不应该自己跑通了吗?提测前整体跑通一遍不更好吗?
mikuazusa
2021-02-01 16:05:01 +08:00
Jenkins 中的项目编译启动脚本和测试接口自动化脚本,增加 1 个参数变量记录 F1 、F2 、F3,然后 2 个脚本根据这个参数来执行对应的模块化构建和接口测试即可
th00000
2021-02-01 16:11:24 +08:00
场景不成立:
如果是基于主干开发, 那么所有被提交的代码都应该是跑通的, 不应该有 block 主干的因素存在
如果是基于分支开发, 那么测试仅跑当前自己的分支即可, 也不会出现 bolck 测试的因素存在
tibifide
2021-02-01 16:58:01 +08:00
@themostlazyman 跟开发人员沟通了下,dev 环境的确不适合跑接口自动化,原因是开发人员在提交的时候可能只是定义一个接口的名称,具体的内容还没有进行开发。
tibifide
2021-02-01 17:00:56 +08:00
@th00000 基于主干进行开发,所有被提交的代码不一定能跑通,就像开发人员告诉测试人员可以进行测试了,但是测试环境仍有多个接口调不通的这个场景
th00000
2021-02-01 17:09:11 +08:00
@tibifide #5
基于主干开发, 所有提交的东西都不应该有已知的阻塞项目的事情发生, 如果有, 就是模块切分不好, 或者开发人员有问题, bug 是不可避免的, 但是我们讨论的应该不是 bug 的问题
感觉你们方法论出了问题, 你们在用一个看似正确的工具去解决一个错误的方法论, 看起来别扭的不行
th00000
2021-02-01 17:11:03 +08:00
具体方法论可以看这里 [Trank based develepment]( https://cloud.google.com/solutions/devops/devops-tech-trunk-based-development)
tibifide
2021-02-01 17:26:31 +08:00
@mikuazusa 我在想有没有这样一种机制,开发人员在 commit 的时候如果加上了 tag,就会通知到 jenkins 去执行脚本,如果没有加 tag,就不通知给 jenkins 。然后接口自动化时可以根据 tag 去执行对应的用例。
retanoj
2021-02-01 17:30:32 +08:00
@tibifide 条件触发肯定是能做到的。
不过 dev 环节就跑测试的话,那也只能是单测了吧
tibifide
2021-02-01 17:46:19 +08:00
@retanoj 就是没有搞清楚持续集成是在 dev 环境跑单测,还是 dev 环境开发提交代码的时候单元测试和接口测试同时跑,接口测试介入的时机
retanoj
2021-02-01 18:15:30 +08:00
@tibifide
额,我好像在其他地方问过类似的问题。
对于开发过程的 push,可以跑单测
对于合并入主分支的 Merge,Merge 之前跑集成测试,测试结果反馈给 Merge 审批人
mikuazusa
2021-02-02 09:53:27 +08:00
@tibifide 都可以啊,Jenkins 加一个触发器 trigger 就行了,使用 git 监控插件监控特定 tag 推送

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/750328

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX