文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

开源项目如何做集成测试,你学会了吗?

2024-11-29 20:42

关注

通常是需要对外提供服务的开源项目都需要集成测试:

而只提供本地类库的项目通常只需要编写单元测试即可:

以我接触到的服务型应用主要分为两类:一个是 Java 应用一个是 Golang 应用。

🐳Golang

Golang 因为工具链没有 Java 那么强大,所以大部分的集成测试的功能都是通过编写 Makefile 和 shell 脚本实现的。

还是以我熟悉的 Pulsar 的 go-client 为例,它在 GitHub 的集成测试是通过 GitHub action 触发的,定义如下:

图片

最终调用的是 Makefile 中的 test 命令,并且把需要测试的 Golang 版本传入进去。

图片

Dockerfile

图片

这个镜像简单来说就是将 Pulsar 的镜像作为基础运行镜像(这里面包含了 Pulsar 的服务端),然后将这个 pulsar-client-go 的代码复制进去编译。

接着运行:

cd /pulsar/pulsar-client-go && ./scripts/run-ci.sh

也就是测试脚本。

图片

测试脚本的逻辑也很简单:

图片

通过这里的 action 日志可以跟踪所有的运行情况。

☕Java

Java 因为工具链强大,所以集成测试几乎不需要用 Makefile 和脚本配合执行。

还是以 Pulsar 为例,它的集成测试是需要模拟在本地启动一个服务端,然后再运行测试代码。

这个的好处是任何一个单测都可以在本地直接运行,而  Go 的代码还需要先在本地启动一个服务端,测试起来比较麻烦。

来看看它是如何实现的,我以其中一个 BrokerClientIntegrationTest为例:

图片

图片

会在单测启动的时候先启动服务端。

图片

最终会调用 PulsarTestContext 的 build 函数启动 broker(服务端),而执行单测也只需要使用 mvn 就可以自动触发这些单元测试。

图片

只是每一个单测都需要启停服务端,所以要把 Pulsar 的所有单测跑完通常需要 1~2 个小时。

所以这些集成测试本质上都是先要把测试环境构建出来,再跑对应的测试代码;后续也打算给 cim 加上集成测试实操一下。

来源:crossoverJie内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯