【问题标题】:How to recognize < x % coverage in gcov in Makefile?如何识别 Makefile 中 gcov 的 < x % 覆盖率?
【发布时间】:2015-12-05 07:43:22
【问题描述】:

我正在尝试定义一个make 目标,该目标断言x% 的测试覆盖率,即在文件具有x% 测试覆盖率的情况下失败,但我似乎没有找到控制gcov 的返回码,我想避免解析它的输出。

我的make目标目前是

GCOV = gcov

coverage:
    $(MAKE) CFLAGS='-g -O0 --coverage'
    $(MAKE) check
    cd src && $(GCOV) -o .libs/ *.c # there're no .gcno files in lib which means that gcov can't be run on them; gcov only seems to work in the current directory

我在 Ubuntu 15.04 上使用 gcov 4.9.2。

【问题讨论】:

  • 获得覆盖百分比的唯一方法是询问gcov 或解析输出。

标签: makefile gcov


【解决方案1】:

Gcov 不支持这一点,但您可以使用像 gcovr(3.4 版或更高版本)这样的 gcov 包装器。如果你跑

$ gcovr --fail-under-line 80

并且项目中的行覆盖率低于 80%,则 gcovr 命令将以非零状态退出(有关详细信息,请参阅documentation)。有一个类似的--fail-under-branch 选项要求最小的分支覆盖率。您可以使用--filter 正则表达式仅选择您感兴趣的那些文件。

【讨论】:

  • 不,请不要删除!这个答案似乎对许多人来说是一个有用的路标——我通过查看 gcovr 推荐人找到了它:) 感谢你的 PR,即使它们没有被合并——他们提出了一个有用的方向!
猜你喜欢
  • 1970-01-01
  • 2012-05-26
  • 2012-11-22
  • 2012-12-07
  • 2011-08-07
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
相关资源
最近更新 更多