如何识别< Makefile中gcov的x%覆盖率?

时间:2015-09-09 11:04:27

标签: makefile gcov

我正在尝试定义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。

1 个答案:

答案 0 :(得分:2)

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

$ gcovr --fail-under-line 80

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