Makefile+lgcov+apache简单发布代码覆盖率主页
来源:互联网 发布:ubuntu上openstack部署 编辑:程序博客网 时间:2024/06/08 02:53
在项目管理中不只是讲究说能否解决问题,还讲究方便有效的过程合理利用好资源来提高团队的工作效率。
项目中,代码提交了,单元测试也写了,但是之后,对于代码的质量要求不能放松,单元测试是否已经有效覆盖代码的部分,不能留下一些死角最后成为影响产品质量的因素,于是,使用了代码覆盖率工具帮助项目开发,进一步来说,代码覆盖率工具的使用是不是能够在团队里面方便使用然后及时反馈问题呢,就需要一个足够贴心的老大了,呵呵。
环境:Linux C++ boost
我比较喜欢lgcov呈现出来的覆盖率主页,清晰易懂,所以围绕lgcov把组内的代码利用Makefile进行重编,本来我们组是利用bjam来编译项目的,配置起来比makefile可就简便多了,但是貌似bjam这东西不知道怎么和lgcov结合起来,后来在网上也没找到什么提示,看到这篇文章的大侠如果有bjam和lgcov结合的经验请留个言呵呵,所以直接就利用Makefile来写了,我对于Makefile也是个初学者,用了几天,某些很零碎的时间学习基础知识,在网上搜资料看基本应用,还有如何在makefile中利用gcc和lgcov结合来产生我要的结果,下面是我使用的Makefile模板:
CC = gcc
XX = g++
OBJ_DIR = ***
SYSTEM_LIB = /***.O
PROJECT_LIB = /***.O
BOOST_LIB = /***.O
GWDLL_LIB = ***.O
OTHER_LIB = ***.O
SYSTEM_INC = ***/include
PROJECT_INC = ***/include
GWDLL_INC = ***/include
LIB_SHARE = ***/*.ld
LDFLAGS = -mabi=64\
-lrt\
-lpthread\
-lcvmx\
-Xlinker -T -Xlinker
CFLAGS = -Wall\
-fprofile-arcs\
-ftest-coverage\
-O\
–g\
TARGET = ./helloworld
%.o: %.c
$(CC) -I$(A_INC) -I$(B_INC) $(CFLAGS) -c $< -o $@
%.o:%.cpp
$(XX) -I$(A_INC) -I$(B_INC) $(CFLAGS) -c $< -o $@
SOURCES = $(wildcard *.c *.cpp)
OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES) ) )
$(TARGET) : $(OBJS)
$(XX) $(OBJS) -o $(TARGET)
chmod a+x $(TARGET)
先生成库文件,最后再链接成一个可执行文件:
g++ -g -O2 -lgcov --coverage -o main ***.o
执行可执行文件./main,会产生很多gcda文件
利用lgcov工具,如果没有装要先安装
lgcov --directory ./ --capture --output-file app.info
genhtml app.info
此刻看到有index.html主页出现了,women使用apache架构出去给队员们访问
安装apache然后配置其httpd.conf文件,主要是在与DocumentRoot要换成上面生成index.html的目录,然后Directory那里要改成Allow from all
最后还必须注意,linux系统的防火墙要关掉,不然网页访问不到主页。
如此,完毕。
- Makefile+lgcov+apache简单发布代码覆盖率主页
- 代码覆盖率
- 代码覆盖率
- 代码覆盖率
- 代码覆盖率
- 代码执行覆盖率工具Emma、cobertura简单比较
- JAVA代码覆盖率工具JaCoCo-原理简单分析
- 什么叫代码覆盖率
- PHP 代码覆盖率分析
- Cobertura测试代码覆盖率
- 代码覆盖率工具大全
- 代码覆盖率lcov使用
- CoverageValidator代码覆盖率检查
- 代码覆盖率工具大全
- 代码覆盖率工具大全
- 代码覆盖率浅谈
- c代码覆盖率工具
- xdebug代码覆盖率原理
- 设计模式-装饰模式(Decorator Pattern)
- 12.12心得体会
- Mysql-Master与Slave配置
- 访问数据库使使用PreparedStatement预处理
- JQuery鼠标跟随效果
- Makefile+lgcov+apache简单发布代码覆盖率主页
- CSDN博客系统太烂了
- 如何精确地测量java对象的大小-底层instrument API
- 求float到string的转换函数
- java web 项目 获取客户端 域账户和计算机名
- VS2008 SkinMagic 使用
- CakePHP中使用saveAll无法正常保存数据的解决办法
- Virtualbox虚拟Ubuntu共享文件夹设置
- 验证码的制作