CI/CD 也谈了好多年了。根据我的理解,CI 就是提交代码触发自动测试。CD 就是自动测试过了之后触发打包部署。我一直没在项目里用过,充满疑问:
GUI 开发到底怎么测试?
如果是写框架,写工具,mock 请求之类的不涉及用户操作的,写写单元测试大家都知道怎么做。问题就在那些用户操作的部分,就算是有模拟器,像拖拽操作,动画表现,设备兼容性之类的问题,我很难想出要怎么写代码来测试。
如果必须大量人工测试,CD 如何应用?
这种情况下,肯定是没办法自动测试过了就部署的。顶多是把打包部署的过程做成一键操作,等人工测完了,bug 修好了,再手工操作。如果不能自动部署,跟自己写个脚本,需要的时候执行一下有什么区别呢?
请教各位做 GUI 开发的朋友们,你们团队是怎么应用 CI/CD 的?
1
sunjourney 2019-09-06 09:01:34 +08:00
同求,web 是可以做 snapshot 的,还可以用 headless browser 的 API,还可以用虚拟 DOM 去测,native 这块有老歌解答下怎么做自动化的吗
|
2
louiswang002 2019-09-06 09:26:45 +08:00
Appium jenkins
|
3
eric1202 2019-09-06 09:43:27 +08:00
只要涉及的到人测试的 就不太容易完全一键部署了 顶多是 master 分支重复重复再重复了
等待高手解答 |
4
shuizhengqi 2019-09-06 10:50:32 +08:00
一般 cd 都是不包含测试的。而且你一个人的话,搞个 cd 意义不大,脚本就直接搞了
|
5
runze 2019-09-06 11:00:22 +08:00
CI 不是每一次提交都一定要测试的,CD 也不是测试通过就一定要部署的。
比如可以每次提交都测试,只有特定分支 /tag 的提交才部署,这样就保留了人力参与测试的空间。 |
6
runze 2019-09-06 11:07:03 +08:00
以前端为例:
每次提交都过一遍 cypress,不考虑兼容,只保证既有功能的完整。同时每个功能变动都要有人工测试,重点是新功能和兼容问题,都测试通过之后再 merge 到特定分支,自动开始部署。 |
7
CoCoMcRee 2019-09-06 11:08:58 +08:00
iOS 项目 使用 fastlane 一键 release 发到 AppStore 并自动推送 testflight, 上架提交还是要手动点的.
|