docker环境下的代码覆盖率统计

项目后期使用了docker部署,于是尝试了一下在docker环境部署实现代码覆盖率的统计。

一点尝试

参考之前使用jacoco的方法,进入一个已开启的镜像,将jacoco放入镜像中,在镜像内修改启动脚本,配置jacoco路径、dumpdir等项目。

mark

其中关于address项,一开始将address设置为127.0.0.1,重启程序时报错,经过几次错误实验后修改为容器ip,即在镜像内通过ifconfig得到的ip。但是如果每次都进入镜像去查看ip的话未免太麻烦,在kube主机上通过kubectl get po -o wide命令可见所有容器的信息,其中就有容器的ip。

mark

重启程序后ps -ef | grep java,可见jacoco已启动监听。

两点尝试

将jacoco放入基础镜像中,将新的镜像submit并push到镜像库中。使用新的基础镜像制作新的镜像。

启动新的镜像:

docker run -d -p 31000:6300 name bash

修改ant中的build.xml文件,其中端口设置为容器外部端口31000

mark

在ant的bin目录执行ant dump,在basedir下可以找到生成的exec文件。

<project name="testCodeCoveage"  basedir="/home/jxsw/apache-ant-1.10.1/bin/report" xmlns:jacoco="antlib:org.jacoco.ant" xmlns:sonar="antlib:org.sonar.ant" default="all">

三点尝试

已有的classpath配置:

 <property name="revenueClasspath" value="/home/jxsw/apache-ant-1.10.1/bin/report/class/test" />

将已配置在启动文件中的dump class拷贝出来:

docker cp id:/home/classes/ /home/jxsw/apache-ant-1.10.1/bin/report/class/test/

如果需要拷贝cp后路径下的文件夹,路径最后要加"/"。

拷贝后执行ant report,就可以在指定路径下得到report文件啦。

Note

在整个过程中遇到了几个坑:

1、启动文件中的ip问题,一开始写成了容器所在node机器的ip,后来写成了127.0.0.1,最后以尝试一次的想法终于写对了。关键在于没有对jacoco的原理理解透彻,还是需要对原理深入理解。https://testerhome.com/topics/5757

2、docker submit之后在harbor中没有找到镜像,因为没有push…

又一个愚蠢的错误,记录在这里提醒自己。

3、docker和kube的相关知识还是需要补充一下的嗯。

之后大概会更新一些java相关的东西吧,但愿自己执行力上得来唔…

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,764评论 0 120
  • 一 、什么是 Docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国...
    Blazzer阅读 3,240评论 0 13
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 4,023评论 2 49
  • 举起一杯浊酒 苦涩的麦子掩盖了苹果的红 门外百亩月光洒落 我感受着寒冷刺骨的冬 深秋里的晚风 大雁南飞 鸽子向北 ...
    Kinmo倾墨阅读 275评论 0 2
  • unicode javascript 本可以表示 unicode, ES5 可以直接表示 utf-16 的字符集,...
    faremax阅读 405评论 0 0

友情链接更多精彩内容