如何识别 Makefile 中 gcov 的 < x % 覆盖率?
How to recognize < x % coverage in gcov in Makefile?
我正在尝试定义一个 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 不支持此功能,但您可以使用 gcovr(3.4 或更高版本)之类的 gcov 包装器。如果你 运行
$ gcovr --fail-under-line 80
并且项目中的行覆盖率低于 80%,则 gcovr 命令将以非零状态退出(有关详细信息,请参阅 documentation)。有一个类似的 --fail-under-branch
选项来要求最小分支覆盖。您可以使用 --filter
正则表达式来 select 只有您感兴趣的文件。
我正在尝试定义一个 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 不支持此功能,但您可以使用 gcovr(3.4 或更高版本)之类的 gcov 包装器。如果你 运行
$ gcovr --fail-under-line 80
并且项目中的行覆盖率低于 80%,则 gcovr 命令将以非零状态退出(有关详细信息,请参阅 documentation)。有一个类似的 --fail-under-branch
选项来要求最小分支覆盖。您可以使用 --filter
正则表达式来 select 只有您感兴趣的文件。