Ccover在hudson持续集成中的应用

简介:

背景

Hudson是一款优秀的持续集成引擎,但是在使用中发现对于后端c语言的项目支持还没有成熟的插件,不是特别易用,覆盖率,btest等都不能直接应用到hudson中。 
每次新加入的代码要经过充分单测才能保证整体的稳定性。评价单测充分性有很多指标。其中一个重要指标就是覆盖率指标。把ccover集成进hudson,并且改进一下报表和展现工具,使其更好的为保证产品质量服务。使其成为日常测试一个简单易用的工具是主要目标。 

前期准备
Hudson安装请参见文档: 
http://com.baidu.com/twiki/bin/viewfile/Ecom/Continuous_integration?filename=Hudson%E4%BD%BF%E7%94%A8.doc
<!--[if gte mso 9]&gt;<![endif]--> 
Ccover安装请参见文档: 
http://com.baidu.com/twiki/bin/view/Main/Ccover
<!--[if gte mso 9]&gt;<![endif]--> 
<!--[if gte mso 9]&gt;<![endif]--> 
使用ccover
先配置hudson从svn获取最新版本。 
书写ant构建环境,ccover的覆盖率文件一般在bash_profile中配置为`pwd`/test.cov。如果通过这种方式编译通过后,没有产生test.cov文件。先使用cov01 –s命令检查ccover是否开启,仍不能解决建议covfile使用绝对目录的配置形式。 
通过covfn,covsrc,covdir,Covclass获取html格式的覆盖率报告。通过html格式的插件展现在hudson中。 
需要安装的插件如下: 
htmlpublisher.hpi 
ncover.hpi 
配置方式如下: 
先配置展现报告的目录 
<!--[if mso]&gt; <![endif]--><!--[if gte mso 9]&gt;<![endif]--><!--[if gte mso 9]&gt;<![endif]--><!--[if gte mso 9]&gt;<![endif]--><!--[if gte mso 10]&gt; <![endif]--> <!--[if gte mso 9]&gt;<![endif]--> 
<!--[if mso]&gt; <![endif]--><!--[if gte mso 9]&gt;<![endif]--><!--[if gte mso 9]&gt;<![endif]--><!--[if gte mso 9]&gt;<![endif]--><!--[if gte mso 10]&gt; <![endif]--> <!--[if gte mso 9]&gt;<![endif]--> 
<!--[if gte mso 9]&gt;<![endif]--> 
勾选keep past coverage report选项,用来保准历史运行中的覆盖率报告。 
配置需要展现的报告名称,用逗号隔开 
<!--[if gte mso 9]&gt;<![endif]--> 
至此完成了降ccover集成进hudson中的工作。到此为止虽然我们可以查看ccover的报告了,但是还是没法发现那些函数下降了,新代码覆盖率与老代码有哪些不同。需要我们自己做一些扩展和改进。 
改进
对比档次build版本的覆盖率和之前版本的覆盖率,找出差异。 
lowest_warning=5 函数最低覆盖率 
new_warning=10 新加入函数的最低覆盖率 
drop_warning=1 旧函数最多下降的比率 
发现任何一个指标低于阀值则进行报警,并将将变动的函数展现在报告中。 
 



<!--[if gte mso 9]&gt;<![endif]--> 
<!--[if gte mso 9]&gt;<![endif]--> 
<!--[if gte mso 9]&gt;<![endif]--> 
图形化展示历史的ccover覆盖率变化趋势,方便分析程序的变化历程。 
配置如下: 
#提取覆盖率信息的文件名 
file_name=testsrc.html 
#输出覆盖率信息的文件名 
output=mydir.csv 
#提取信息的匹配名称 
match=avgrank_value_computation.cpp 

配置成功后,可以在hudson首页查看历史的覆盖率趋势 
<!--[if gte mso 9]&gt;<![endif]--> 
 

 

后话
经过几步改造后,ccover已经比较好的融入到hudson。方便我们使用和查看每次版本的覆盖率,分析历史趋势。我们的持续集成还有很多需要改进的地方,希望ccover可以帮助我们更好的在前期把控质量,分析程序缺陷。不断改进,提高hudson在后端持续集成的易用性。

 

(作者:wangzuobo) 
 

 

















本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/743415,如需转载请自行联系原作者

相关文章
|
运维 Java jenkins
jenkins持续集成从0入门到实战【三】集成Git和Maven
Maven是目前主流的自动化构建工具,而Git也是目前主流的分布式版本控制系统。要做Java项目的持续集成必须会集成这2个工具。
189 0
jenkins持续集成从0入门到实战【三】集成Git和Maven
|
Kubernetes Java jenkins
6. k8s + jenkins 实现持续集成(完)
一. 在node节点上安装软件. 具体软件内容如下
519 0
6. k8s + jenkins 实现持续集成(完)
|
jenkins 持续交付 Windows
|
Java jenkins 持续交付
Jenkins 自动化部署 持续集成
螢幕快照 2017-11-18 22.56.06.png Source files build/libs/cms-0.0.1-SNAPSHOT.
1628 0
|
jenkins 测试技术 持续交付
|
监控 jenkins 持续交付