标签: lcov

在单个存储库中获取工作服的多个覆盖率报告

是否可以为单个存储库获取单独的前端和后端测试报告?

似乎有一种可能的方法是将lcov报告连接成一个然后运送到工作服,如本问题所述.

但是,我想知道是否有办法查看前端和后端的单独代码覆盖率报告,或者为lcov工作服提供两个文件.如果是这样,怎么样?

lcov coveralls

61
推荐指数
1
解决办法
1595
查看次数

如何更改Karma执行的LCOV报告的格式?

我已经将Karma配置为报告我的JavaScript代码的覆盖范围.以下是karma.conf.js文件中配置的一部分:

coverageReporter: {
  reporters: [
    {
      type: 'html',
      dir: 'build/karma/coverage'
    },
    {
      type: 'lcov',
      dir: 'build/karma/coverage',
      subdir: '.'
    },
    {
      type: 'cobertura',
      dir: 'build/karma/coverage'
    }
  ]
},
Run Code Online (Sandbox Code Playgroud)

我的lcov.info文件格式如下:

TN:
SF:./app/scripts/app.js
FN:16,(anonymous_1)
FN:26,(anonymous_2)
FNF:2
FNH:1
FNDA:1,(anonymous_1)
FNDA:0,(anonymous_2)
DA:2,1
DA:20,1
DA:29,0
DA:34,0
LF:4
LH:2
BRF:0
BRH:0
end_of_record
Run Code Online (Sandbox Code Playgroud)

不幸的是,在Sonarqube JavaScript的插件,仅考虑与启动线SF:,DA:BRDA:(CF LCOVParser).

因此,LCOV HTML报告(由伊斯坦布尔制作)使我在相同数据上的代码覆盖率高于Sonar.

有没有办法改变lcov.info生成的格式?


如果我查看伊斯坦布尔代码,我可以想象不同标签的含义:

  • BRF,BRH,BRDA分支机构.
  • FN,FNF …

javascript lcov karma-runner sonarqube karma-coverage

38
推荐指数
1
解决办法
5034
查看次数

有没有办法将lcov代码覆盖率报告集中到一个或两个目录?

我最近开始使用lcov来可视化我的代码覆盖率.这是一个很棒的工具.

我注意到的一件事是它为我正在使用的所有文件生成代码覆盖率报告 - 包括那些我不感兴趣的文件.例如,它将为我提供boost和mysql ++文件的代码覆盖率报告.

是否有一种简单的方法可以强制lcov仅生成特定文件的覆盖率报告?

我试过像这样使用-k参数:

/usr/bin/lcov -q -c -i -b . -d .obj -k src/ -k include/ -o app_base.info

{run unit tests now}

/usr/bin/lcov -q -c -b . -d .obj -k src/ -k include/ -o app_test.info
/usr/bin/lcov -q -a app_base.info -a app_test.info -o app_total.info
/usr/bin/genhtml -q -o lcov_output_directory app_total.info

(这意味着我只想要"include"和"src"目录的覆盖文件.)

但是,这似乎不起作用.该报告仍然显示了所有无关的文件.任何建议都非常感谢.谢谢!

code-coverage gcov lcov

27
推荐指数
2
解决办法
2万
查看次数

使用块的XCode 5.1单元测试覆盖率分析失败

今天我的任务是将单元测试覆盖率分析添加到我们的代码库中.今天也是iOS 7.1与XCode 5.1一起发布的日子.从发行说明:

用于代码覆盖测试的gcov工具已重新实现.新版本使用LLVM项目中的llvm-cov工具.对于所有重要功能,它在功能上等同于旧版本.Xcode中gcov的位置也已移动,使用xcrun来调用它.如果您发现问题,请提交错误报告.对于此版本,您仍然可以使用GCC的旧版gcov,它以gcov-4.2的形式提供.11919694已更新

我只是在遵循几篇教学 博客 文章后才意识到这一点,正确设置我的环境 - 在测试时在模拟器的构建文件夹中生成.gcda/.gcno文件 - 并且在此处生成报告生成工具尝试将它们解析为报告.(这是一个./getcov脚本,它收集您的环境变量以传递给lcov-1.10脚本以生成报告)

第一个障碍是新的捆绑gcov程序不支持-v获取版本的参数,这是lcov初始化的第一步.看起来就像一个非首发,但是阅读上面的发行说明我修改了lcov脚本以使用旧gcov-4.2版本并解决了问题.

但是,lcov在处理我的覆盖数据文件时很早就出错了.这会在我的项目中按字母顺序生成一个可能包含前10个文件的报告.不是特别有用.错误输出是最小的,也是无益的:

geninfo:错误:GCOV(build_artifacts)/(class_that_errored).gcda失败了!

我修改了lcov脚本以打印它所获得的错误(11遗憾的是,它只能在gcov(-io).c代码中找不到任何引用)并继续操作而不是退出,所以我留下了更多报告中的文件,但仍有85%的源文件出错,如上所述.

我能够在报告中成功结束的文件与发生错误的文件之间辨别的唯一模式是任何使用内联块声明的文件都失败了.没有任何传递过的文件以任何方式阻止,我检查过的所有文件都包含块.奇怪.

后来我想通了,我可以在打开单个文件.gcda 封面,其中包括曾在出错的那些lcov脚本.在coverage报告下面的消息窗口中,所有出错的文件都有警告消息:

(class_that_errored).gcno:'__copy_helper_block_'没有行

(class_that_errored).gcno:'__destroy_helper_block_'没有行

在这一点上我最好的假设是新的XCode 5.1生成.gcda文件,旧gcov-4.2程序没有配备有关块声明的处理.

但是我已经筋疲力尽了我想要尝试的一切,所以我在这里询问是否有人知道我错过了什么,或者有什么想法可以进一步调试.或者,如果有人成功测量了今天的XCode 5.1更新后的测试覆盖率gcov,我很想知道你必须做出的任何改变.

xcode gcov lcov test-coverage xcode5.1

25
推荐指数
1
解决办法
5246
查看次数

Lcov:无法收集分支机构覆盖统计数据

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

lcov version:1.10, gcov version:4.4.5
Run Code Online (Sandbox Code Playgroud)

我使用的命令是:

 lcov -d $OSPL_HOME/src -d $OSPL_OUTER_HOME/src  -c -o /work/li/log/lcov-raw.info

lcov -r /work/li/log/lcov-raw.info "*.ll" "*.yy" "*.yy.c" yaccpar "TAO161*" "/usr/include/*"  "*/testsuite/*" -o /work/li/log/lcov.info
Run Code Online (Sandbox Code Playgroud)

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

Deleted 23 files

Writing data to /work/li/log/lcov.info

Summary coverage rate:

  lines......: 45.4% (65087 of 143496 lines)

   functions..: 46.1% (5575 of 12102 functions)

  **branches...: no data found**
Run Code Online (Sandbox Code Playgroud)

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

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

geninfo: WARNING: cannot find an entry for ..#..#code#accum.c.gcov in .gcno file, skipping file!
 geninfo: WARNING: cannot find an entry for ..#..#code#at.c.gcov in .gcno …
Run Code Online (Sandbox Code Playgroud)

c testing branch code-coverage lcov

22
推荐指数
2
解决办法
8680
查看次数

生成lcov的分支覆盖数据

我正在尝试将lcov用于代码覆盖率指标,但我无法使分支机构覆盖工作.

这是我如何使用它:

g++ -ggdb3 --coverage src/read.c tests/test.cpp -o bin/test 
lcov --zerocounters --directory $PWD 
lcov --capture --initial --directory $PWD --output-file coverage_output  
./bin/test 
lcov --no-checksum --directory $PWD --capture --output-file coverage_output 
genhtml --branch-coverage --highlight --legend --output-directory out coverage_output
Run Code Online (Sandbox Code Playgroud)

但我得到:

整体覆盖率:
线......:100.0%(60行中60个)
函数..:100.0%(26个函数中的26个)
分支...:未找到数据

有任何想法吗?

c++ testing code-coverage lcov

19
推荐指数
3
解决办法
1万
查看次数

LCOV/GCOV分支覆盖范围,C++生成分支机构

我们正在使用LCOV/GCOV来为我们的项目提供测试覆盖率.最近我们尝试另外启用分支覆盖.但看起来,这只是不会产生我们从高级开发人员视图中预期的结果.

在C++中使用branch-coverage可以在整个地方分支报表.我们怀疑(正如搜索问题所示)主要是异常处理代码创建这些"隐藏分支".GCOV/LCOV似乎没有跳过这些.

我创建了一个小测试项目来显示问题:https://github.com/ghandmann/lcov-branch-coverage-weirdness

目前我们使用的是Ubuntu 16.04.有:

  • gcc v5.4
  • lcov&genhtml v1.12

我们的生产代码是在启用c ++ 11的情况下构建的.最小的例子不是在启用c ++ 11的情况下构建的,但是当我们尝试使用所有不同的选项(c ++标准,优化-fno-exceptions)时,我们没有得到可通过的结果.

有人有想法吗?的窍门?我们使用的是错误的方式吗?这是否 - 如其他地方所述 - 真正预期的行为?

更新:

正如gcc-help邮件列表中指出的那样,这些"隐藏分支"由于异常处理而发生.因此,将-fno-exceptions开关添加到gcc会为"简单"程序产生100%的分支覆盖率.但是当禁用异常时,gcc拒绝编译实际使用异常的代码(例如try-catch,throw).因此,对于实际生产代码,这不是一种选择.看起来,在这种情况下,你必须简单地宣布约50%的覆盖率为新的100%.;)

c++ code-coverage gcov lcov

19
推荐指数
3
解决办法
9920
查看次数

如何根据Jasmine的SpecRunner.html生成LCOV报告?

我们正在使用Jasmine进行JavaScript单元测试.我们有一个SpecRunner.html文件来运行测试.是否存在可以将路径传递给SpecRunner.htmlJavaScript 的工具以及JavaScript(而不是规范)文件的路径,它会生成LCOV报告.例如,像这样:

phantomjs jasmine_lcov.js SpecRunner.html WebContent/js
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing lcov jasmine

15
推荐指数
2
解决办法
7644
查看次数

Xcode5代码覆盖率(来自CI构建的cmd-line)

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

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

我正在使用的cmd-line是:

xcodebuild -workspace ${module.name}.xcworkspace test -scheme ${module.name} -destination OS=${module.sdk.version},name=iPad -configuration Debug
Run Code Online (Sandbox Code Playgroud)

适用于AppCode

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

适用于Xcode IDE

  • 也适用于Xcode IDE...是否有一个cmd-line会产生覆盖,或者这是一个Xcode错误?

code-coverage objective-c lcov xcode5

14
推荐指数
2
解决办法
8331
查看次数

Lcov覆盖范围不一致

我开始使用lcov大约一个月前.覆盖范围似乎不一致.第一轮报告的线路覆盖率约为75%,而第二轮报告的线路覆盖率仅为19%.使用的测试套件对于两次运行都是一些.我在lcov期间看到以下警告 - 删除.有什么建议?

lcov:警告:在tracefile all.info中找到负数

这有什么值得担心的吗?

提前致谢.

code-coverage lcov

14
推荐指数
1
解决办法
921
查看次数