问题标签 [lcov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10128 浏览

c - Lcov:无法收集分支覆盖率统计信息

我用lcov来在我的项目中创建覆盖信息。但我只能得到线路覆盖率和功能覆盖率统计信息。

我使用的命令是:

在这两个命令之后,我得到的结果是:

所以没有分支覆盖结果。为什么?所以发生了什么事?这怎么可能发生?我在这里很困惑。

在第一个命令之后,我收到了很多这样的警告:

0 投票
2 回答
5233 浏览

linux - Linux 内核代码覆盖率 - GCOV

我正在尝试使用Linux 测试项目中的一些测试场景并获取内核源代码覆盖率

我正在使用 GCOV/LCOV 这样做。

这是我到目前为止的东西:

  • 构建配置中的 GCOV 标志

基于 GCOV 的内核分析

CONFIG_GCOV_KERNEL=y

CONFIG_GCOV_PROFILE_ALL=y

Linux内核版本:2.6.32.60+drm33.26

  • 构建内核后,我在源文件夹中有所有 .gcov 文件
  • 当我使用源文件作为输入时,GCOV/LCOV 工作

我应该拥有但我没有的东西

  • /Proc/GCOV 文件夹
  • GCOV 内核模块 (gcov.o?)

现在我想要的是运行测试场景并使用 LCOV 获取到目前为止已使用的 Linux 内核代码部分。但是当我调用 LCOV -c 时,即使所有构建标志都正常,这也是我得到的。

加载所需的 gcov 内核模块。

lcov: 错误: 无法加载所需的 gcov 内核模块!

< 2.6.30 有一个内核补丁,然后它被内置。

0 投票
1 回答
1535 浏览

unit-testing - 从 JSCover/JSCoverage coverage.xml 或 jscoverage.json 获取 LCOV 兼容输出

概括

我最近从使用Google 的 JsTestDriver切换到了Testem但错过了LCOV HTML Code Coverage Reports,有没有办法将JSCover输出转换为 LCOV 格式,所以我可以使用 genhtml 创建这样的报告

细节

我正在使用 Testem、Jasmine 和 PhantomJS 从一个 JSCoverage 示例中工作,它生成以下 2 种覆盖输出格式;

覆盖率.xml

jscoverage.json

有没有办法将上述内容覆盖到 js-test-driver 输出的 jstestdriver.conf-coverage.dat 格式中?

谢谢。

0 投票
1 回答
527 浏览

c++ - 它是 lcov 的错误还是对一个函数中的不同命中计数有意义?

代码覆盖率报告如上。对于 Conf 类,构造函数的命中数是 2,但是这一行的命中数std::ifstream in( filename.c_str() );是 4,我认为它也应该是 2。您如何看待此代码覆盖率报告中的不同命中数,这是一个错误lcov还是有意义的?

0 投票
0 回答
233 浏览

objective-c - 为什么 lcov 不报告异常覆盖率?

请参阅此覆盖率报告。. 我知道我的测试用例正在执行异常处理,但是这些行仍然被报告为未涵盖。. . 一段时间以来,我所有的objective-c项目都是这种情况。. . . 有没有办法来解决这个问题?

0 投票
1 回答
1126 浏览

bash - 处理 bash 脚本中的双引号

我正在尝试编写一个 bash 脚本,该脚本将动态构建我需要执行的命令。(合并 lcov 文件)

到目前为止,我能够构建命令行,结果如下:

如果我在我的 shell 中运行该行echo输出,它可以工作,但我无法从我的脚本运行这个命令,而且我缺乏 bash 的伟大之处来调试它。

这是我从回声中得到的那种输出:

你知道这里有什么问题吗?

问候,

泽维尔

0 投票
2 回答
363 浏览

code-coverage - Gcov 是基于应用程序的覆盖还是基于系统的覆盖

Gcov 是基于应用程序的覆盖还是基于系统的覆盖

不会为所有文件生成 .gcda 文件。gcda 文件仅为少数源文件创建。为所有符合 gcov 编译标志的源文件创建 gcno 文件。我的项目还有基于 QT 的模块,我没有获得 .gcda 文件。

这里的问题是:gcov 是基于应用程序的覆盖工具还是基于系统的覆盖工具?

我在 CFLAGS LDFLAGS 和 CXXFLAGS 中添加了 -fprofile-arcs -ftest-coverage。

0 投票
2 回答
3137 浏览

android - gcov 在 Android AOSP 中使用时无法打开源文件

我有以下 AOSP 项目设置

1)我在(AOSP根目录)/vendor/myProject/test.cpp中有test.cpp

2) 在 Android.mk 中,我使用了 LOCAL_CFLAGS += -g -fprofile-arcs -ftest-coverage LOCAL_LDFLAGS += -lgcov

3)当我编译代码时,我得到 test.gcno 在:(AOSP 根目录)/out/target/product/generic/obj/EXECUTABLES/myProject_intermediates

4)然后我在设备上进行测试(adb sync)

5)然后在设备上我使用了以下内容: export GCOV_PREFIX=/vendor
export GCOV_PREFIX_STRIP=13 (去除不必要的路径)

6)我运行测试 ./system/bin/test 并在设备(shell)/vendor/test.gcda 上获得 test.gcda 文件

7)我将 test.gcda(从设备)复制到我已经有 test.gcno 的构建目录(/out/target/product/generic/obj/EXECUTABLES/myProject_intermediates)

8)现在我在 /out/target/product/generic/obj/EXECUTABLES/myProject_intermediates 然后运行 ​​gcov 如下:

(AOSP根目录)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcov test

为此,我得到如下输出:

文件 'vendor/myProject/test.cpp' 执行的行数:23.00% of 223

供应商/myProject/test.cpp:创建“test.cpp.gcov”

vendor/myProject/test.cpp: 无法打开源文件

任何人都可以帮助我解决这个问题。它说test.cpp:cannot open source file gcov 没有生成完整的报告。我还通过指定源路径来检查 -b 选项,如下所示:

(AOSP根目录)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcov -b (AOSP根目录)/vendor/myProject test

它没有用。

我猜这个问题是因为不同目录中的分布式文件(gcno,gcda,test.cpp)。

谢谢

0 投票
0 回答
443 浏览

gcov - LCOV 代码覆盖率 - 退出状态 255

当我运行代码覆盖以在 html 中输出时,我收到错误消息:

CalledProcessError:命令'lcov -r mycoverage.2.temp“/../generated/*”-o mycoverage.2'返回非零退出状态255

gcov -v 给出:gcov (GCC) 3.4.2

我试图找到退出状态 255 的含义,但没有运气。

请问哪位高手可以帮忙?

0 投票
6 回答
8420 浏览

objective-c - Xcode5 代码覆盖率(来自 CI 构建的命令行)

如何使用 Xcode 5 和 iOS7 生成代码覆盖率?

在升级之前,我的代码覆盖率很好。现在我看不到任何正在生成的 *.gcda 文件。

我正在使用的命令行是:

与 AppCode 一起使用

  • 当我通过 AppCode 执行测试时,我可以看到在 ~/Library/Caches/appCode20/DerivedData 中生成了 *.gcda 文件。. . 我需要它来为我的持续集成构建工作。

从 Xcode IDE 工作

  • 也适用于 Xcode IDE。. . 是否有会产生覆盖的命令行,或者这是一个 Xcode 错误?