67得票8回答
Gcov符号在哪里?

我正在尝试使用gcov编译一个简单的应用程序,但是出现了以下链接错误:gcc AllTests.o CuTestTest.o CuTest.o -o TestTest AllTests.o: In function `global constructors keyed to 0_RunAllT...

60得票7回答
如何解决链接时出现的__gcov_init未定义引用问题

我现在正在进行C代码覆盖率研究,并遇到了以下问题,GCC版本为4.4.6: 添加编译器标志CFLAGS = --coverage和链接器选项LDFLAGS := --coverage或LOCAL_LDLIBS := --coverage,会出现以下错误: undefined refer...

57得票4回答
如何告诉gcov忽略无法执行的C++代码行?

我正在使用gcov来衡量C++代码的覆盖率。我想要达到100%的覆盖率,但有一些代码行在理论上是不可命中的(必须实现但从未调用的方法、switch语句的默认分支等)。每个分支都包含一个assert(false);语句,但gcov仍然将它们标记为未被命中。 我想告诉gcov忽略这些分支。是否有...

41得票3回答
gcov报告中析构函数中的分支是什么意思?

当我使用gcov来测量C++代码的测试覆盖率时,它会报告析构函数中的分支。struct Foo { virtual ~Foo() { } }; int main (int argc, char* argv[]) { Foo f; } 当我使用启用分支概率 (-...

35得票4回答
为头文件库获取有用的GCov结果

针对我的头文件库(包含许多模板等),我使用GCov检查测试覆盖率。然而,由于未使用的函数在编译时根本不会被生成,因此它报告所有头文件的覆盖率为100%。手动寻找未覆盖的函数很容易,但这违背了持续集成的初衷... 有什么自动解决的方法吗?我应该只将“行命中数/代码行数”作为我的覆盖度量标准,并...

33得票1回答
gcov:如何从共享库生成.gcda输出?

通过使用--coverage选项构建与共享库链接的可执行文件,能否生成gcov数据文件(.gcda文件)? 基本上,我有一个由多个C++文件编译成的主要库,编译为一个共享库,然后有一个名为“test”的子目录,其中包含链接并测试主要库的测试程序。一切都编译良好,并且针对库源文件和测试源文件都...

32得票3回答
有没有办法将lcov代码覆盖率报告聚焦到只有一个或两个目录?

我最近开始使用lcov来可视化我的代码覆盖率,这是一个很棒的工具。 有件事情让我不得不注意:它会生成我所使用的所有文件的代码覆盖率报告,包括那些我不感兴趣的文件。例如,它会给我boost和mysql++文件的代码覆盖率报告。 是否有一种简单的方法可以强制lcov仅为特定文件生成覆盖率报告?...

29得票6回答
使用C++编写的LCOV/GCOV分支覆盖产生了各种各样的分支。

我们正在使用 LCOV/GCOV 生成项目的测试覆盖率。最近我们尝试额外开启分支覆盖率,但是从高级开发者的角度来看,这似乎并没有产生我们期望的结果。 在 C++ 中使用分支覆盖率会让报告中到处都是分支,我们怀疑(因为搜索问题时表明)大部分异常处理代码造成了这些“隐藏分支”。而 GCOV/LC...

29得票1回答
在SonarQube中,“Lines to Cover”和“Uncovered Lines”指标的含义有何区别?

我正在查看SonarQube分析的C++项目中“度量”选项卡下的覆盖率报告。在该页面上,我的摘要信息如下: “待覆盖行”和“未覆盖行”指标有何区别? 我查看了SonarQube网站的指标定义页面,但那里的两个条目都没有帮助我。 待覆盖行 - 代码中可以由单元测试覆盖的行数(例如,空行...

28得票1回答
GCOV:使用GCC构建时,“--coverage”和“--ftest-coverage”有什么区别?

尝试启用代码覆盖率并运行,我首先只是阅读文档。我发现有几篇文章提到使用--coverage标志进行构建,而其他人则提到--ftest-coverage。 两种描述似乎都表示它们做相同的事情,但我不确定。 这里有两篇文章: http://bobah.net/d4d/tools/cod...