gcov是Linux下GCC自带的一个C/C++代码覆盖率分析工具
使用方法:在gcc或者g++后面添加参数 -fprofile-arcs -ftest-coverage
注意:-fprofile-arcs -ftest-coverage必须同时在编译器和链接器上设置,(makefile里面可以加在 CFLAGS 和 LDFLAGS上),如果连接的时候出现undefined reference to `__gcov_init' 错误,则还要加上-lgocv
编译成功后运行编译好的程序,然后退出程序。程序会在当前目录下生成*.gcda文件。
然后使用 gcov *.c 或者gcov *.cpp生成代码覆盖信息,这个时候需要将原始代码文件*.cpp或者*.c放在*.gcda文件一个目录中。
完成后会生成*.c.gcov或者*.cpp.gcov文件,里面包含了代码覆盖信息。
由于*.gcov是文字模式的,linux还自带了一个lcov工具,可以帮助我们把文字的信息转换成更直观的图形表格模式。
lcov -d . -t '表格名称' -o '文件名称.info' -b . -c
此时还没完,这个指令只是输出了一个 info 的中间文件,要变成html格式的图形文件还要下面的指令:
genhtml -o 输出目录名 文件名.info
这样才会在输出目录中生成完整的html图形文件,用浏览器在文件目录中打开index文件就能看到了。
转自:http://www.cnblogs.com/spider33/archive/2012/01/12/2320300.html
相关推荐
1. 代码覆盖率:主要包括行覆盖率、条件覆盖率、跳转覆盖率和分支覆盖率。 - 行覆盖率:统计程序中各行代码的执行情况。 - 条件覆盖率:关注程序中逻辑条件的覆盖情况。 - 跳转覆盖率:记录单bit信号变量的值变化...
通过深入研究Linux平台上的代码覆盖率测试,我们不仅了解了GCOV和LCOV这样的关键工具,还掌握了如何使用它们来优化我们的测试策略,提升软件质量。代码覆盖率测试是一项复杂但至关重要的任务,它需要我们不断学习和...
Linux环境下,开发者可以利用各种工具和插件来提高工作效率,其中就包括“代码覆盖率vim插件”。这个插件是专为Vim文本编辑器设计的,目的是帮助程序员在开发过程中更好地理解和分析他们的代码覆盖率。 Vim是一款...
6. 测试覆盖率分析:为了确保测试全面,可以使用覆盖率工具(如gcov、lcov或Python的coverage.py)来测量代码被测试的程度。高覆盖率意味着更少的未测试代码,减少了隐藏错误的可能性。 7. 回归测试:当代码有新的...
3. **内核代码覆盖率分析**: - 即使测试能够很好地利用资源,也可能只覆盖到内核的一部分代码。 - 为了确保测试的有效性,需要使用工具(如gcov和lcov)来评估测试期间内核代码的覆盖率。 - 目标是通过修改测试...
- **概念**:代码覆盖率是一种衡量测试质量的方法,表示测试用例执行了多少比例的源代码。 - **工具**: - `gcov`:GCC自带的代码覆盖率工具。 - `lcov`:基于`gcov`,提供更多可视化功能。 ##### 3. 调试器 - **...
4. 代码覆盖率工具:如gcov、lcov,用于评估测试覆盖度,确保测试充分。 5. 单元测试框架:像是Unity、CppUTest,针对C/C++代码进行单元测试,确保每个模块的功能正确。 三、自动化调试与测试 1. 自动化脚本:...
7. **覆盖率分析**:为了确保代码质量,开发者可能会使用覆盖率工具(如gcov、lcov)来衡量测试用例对`sget-boolean`代码的覆盖程度,目标通常是达到100%的分支覆盖率。 8. **持续集成**:在实际项目中,这种测试...
6. **测试与覆盖率**: CMake支持CTest模块,可以集成单元测试,并且可以使用Gcov或 lcov 等工具进行代码覆盖率分析。 7. **CMake与Git**: 在CMake项目中,可以利用CMake的`ExternalProject`模块轻松地将Git子模块...
- **覆盖率报告**:使用工具(如gcov、lcov)来度量代码覆盖率,确保大部分代码都经过了测试。 - **持续集成**:通过与CI/CD工具(如Jenkins、Travis CI)集成,实现测试的自动化和实时反馈。 - **异常处理**:测试...
9. **代码覆盖率**:通过gcov或lcov等工具测量测试代码对源代码的覆盖程度,以评估测试的充分性。 10. **日志和错误报告**:良好的日志系统和错误报告机制可以帮助开发者快速定位和修复问题,例如使用spdlog库记录...