c++ - 为什么当每个源文件都被 100% 覆盖时工作服显示 0% 的覆盖率?

标签 c++ code-coverage coveralls

我做了一个简单的 C++ 项目,我连接到 travis 和 coveralls。据我所知,我正在正确上传报告,因为我的源文件显示在工作服中并且 100% 被覆盖。

但是,项目覆盖率显示为 0%。为什么以及如何解决?

enter image description here

最佳答案

这是因为 gcov 和 g++ 版本不匹配。

构建日志给出以下信息

adder.cpp.gcno:version '408*', prefer '406*'

这就是为什么在上面的屏幕截图中列都注册为 0 的原因。当 gcov 和 g++ 版本匹配时,输出如下所示

enter image description here

Coveralls 只是让这个错误有点难以发现,因为如果没有相关行,每个文件都被标记为 100% 覆盖,但摘要显示此状态为 0%

关于c++ - 为什么当每个源文件都被 100% 覆盖时工作服显示 0% 的覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37373398/

相关文章:

c++ - 混合语言编程、VB 和 C++、了解 API 和指针

c++ - 将 unordered_map 设置为 unordered_map 的值

C++ 为 T 的派生类覆盖 hash<T>

c++ - 删除二叉搜索树的 fcn

sonarqube - 覆盖率指标不考虑未经测试的代码?

java - Sonarqube 未涵盖主要代码

jenkins - 如何让 Jenkins 从代码覆盖率中排除整个文件夹?

Python 代码覆盖率和多处理

travis 中的 python-coveralls 找不到覆盖范围