欢迎访问企业官网建站公司网站,拥有丰富的建站经验,快速智能且精美!

企业官网建站公司

自助建站官网平台建设,公司自助官网建站定制

Go项目:傻瓜式联合测试

作者:jcmp      发布时间:2021-04-19      浏览量:0
现在微服务很流行,加上我的项目从10个表

现在微服务很流行,加上我的项目从10个表增加到30+表的业务量。 感觉有些内容不应该在同一个服务里。 于是我做了一个决定: 拆分服务 。

分了4个服务后发现每个服务都不到8个表。每个服务的业务复杂度都不高。 心理暗自高兴,都说微服务,微服务,原来这么好?这种好心情维持不到半天,后面出的问题让我晕头转向。踩了N多个坑...ㅠㅠ

今天我想说说其中的测试代码。 当我分了服务后写单元测试,其实没遇到过什么大问题。 可以使用上一篇文章介绍的测试替身。 Go项目的测试代码3(测试替身Test Double)。

问题是每个服务的功能是需要调用其他的服务。 `单元测试没问题,不能确保联合调用没问题`。 (初期把单元测试过的代码直接发布运营,把我害惨了...)。

我做了所有人都能想到的傻瓜式的联合测试方法。 简单,傻瓜式,但是很实用。

一、联合测试思路

就是把数据库(我是用mysql)和几个服务用docker容器启动,执行联合测试代码。 这跟本地运行每个服务后,运行测试代码有什么区别吗?(嘿嘿~ 自己想想吧。我也不知道~)。

二、实际运用例子

有点linux和docker基础的人,看下面的例子应该能想到怎么做的吧?

上面的脚本里,创建镜像的时候用到了 Dockerfile 是这么写的。 (老鸟就不用看了,为了不熟悉的人才上传的)。

看看执行结果?

... ...... ...>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>test start .......ok xxxx/a-service-api-api/controllers (cached)ok xxxx/a-service-api-api/models (cached)ok xxxx/b-service-api-api/controllers (cached)ok xxxx/b-service-api-api/models (cached)... ... ok xxxx/service-test (cached)test end!<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<============== end ===============>

三、好了~ 可以发布了...^^

备注: 很多人跟我说这种功能使用 Docker Compose 会很简单,刚开始的时候我也想用过, 但是我是linux的菜鸟,我想通过这次机会了解一下这些最基础的脚本编写方式。 实现这些功能,我也断断续续的花了4,5天的时间。 (因为没基础,出了问题自己折腾大半天也找不出原因,还找公司的大牛帮忙看的...^^;;) 下次有机会再用 Docker Compose 完善一下吧,哈~

欢迎大家的意见和交流

email: li_mingxie@163.com