You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止ninja coverage-html排除指定FORTRAN文件?

解决Fortran代码库QCxMS覆盖率分析中文件被排除的问题

针对你遇到的ninja coverage-html大量排除.f90文件的问题,试试以下几个实操方向:

  • 直接在meson配置阶段传递lcov规则
    不要仅依赖.lcovrc,运行meson setup时通过参数强制指定lcov的包含规则,覆盖默认过滤逻辑:

    meson setup build -Db_coverage=true -Db_coverage_args='--include="**/*.f90"'
    
  • 修正.lcovrc的放置位置与匹配规则
    meson执行coverage分析时默认在build目录下工作,把.lcovrc移到build目录根路径下,同时根据源文件实际路径调整匹配规则,比如源文件都在src/目录下就写:

    include = src/**/*.f90
    

    避免模糊的递归匹配因路径映射问题失效。

  • 确保所有Fortran目标启用coverage编译选项
    在项目根的meson.build里显式给Fortran目标添加coverage所需参数,防止部分子项目/目标漏配置:

    if get_option('b_coverage')
      add_project_arguments('-g', '-O0', '--coverage', language : 'fortran')
    endif
    
  • 手动执行lcov流程绕过ninja封装
    如果上述方法都无效,直接跳过ninja的封装,手动完成覆盖分析:

    1. 清理旧覆盖数据:lcov --directory build --zerocounters
    2. 运行所有测试用例生成覆盖数据
    3. 收集覆盖信息并指定包含规则:
      lcov --directory build --capture --output-file coverage.info --include="**/*.f90"
      
    4. 生成HTML报告:genhtml coverage.info --output-directory coverage-html

内容的提问来源于stack exchange,提问作者tornikeo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:46:00