4

我已经成功设置了一个自动工具项目,其中测试使用仪器编译,因此我可以获得测试覆盖率报告。

成功“进行检查”后,我可以通过在源目录中运行 lcov 来获取报告。

我现在面临的问题是我想自动化这一步。我想将此添加到“进行检查”或将其作为单独的目标“进行检查覆盖”。理想情况下,如果覆盖率低于某个百分比,我想解析结果并失败。问题是我根本无法弄清楚如何添加自定义目标。

我得到的最接近的是找到这个示例 autotools 配置,但我看不到在该项目中的哪个位置添加了目标“make lcov”。我只能在 m4/auxdevel.m4 中看到一些配置标志。

有小费吗?

4

1 回答 1

7

您显然可以在 Makefile.am 中为目标添加额外的步骤,这就是我最终得到的(灵感来自 #http://www.enlightenment.org/svn/e/trunk/ewl/Makefile.am):

#http://www.enlightenment.org/svn/e/trunk/ewl/Makefile.am
if ENABLE_COV
cov-reset:
    @rm -fr coverage
    @find . -name "*.gcda" -exec rm {} \;
    @lcov --directory . --zerocounters

cov-report:
    @mkdir -p coverage
    @lcov --compat-libtool --directory . --capture --output-file coverage/app.info  
    @genhtml -o coverage/ coverage/app.info 

cov:
    @make cov-report

clean-local:
    @make cov-reset 

check:
    @make cov

endif    

检查下的“@make cov”会将“cov”目标添加到默认的“make check”目标中。

于 2010-05-20T12:38:20.750 回答