我正在尝试定义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。
答案 0 :(得分:2)
Gcov不支持此功能,但您可以使用像gcovr(版本3.4或更高版本)这样的gcov包装器。如果你运行
$ gcovr --fail-under-line 80
并且项目中的行覆盖率低于80%,然后gcovr命令将以非零状态退出(有关详细信息,请参阅documentation)。有一个类似的--fail-under-branch
选项要求最小分支覆盖。您可以使用--filter
正则表达式仅选择您感兴趣的文件。