【问题标题】:Autotools automatic invocation of lcov after 'make check''make check' 后 Autotools 自动调用 lcov
【发布时间】:2011-02-21 18:20:44
【问题描述】:

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

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

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

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

有什么建议吗?

【问题讨论】:

    标签: autotools gcov lcov


    【解决方案1】:

    您显然可以在 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”目标中。

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2021-06-23
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      相关资源
      最近更新 更多