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

修改Bashcov实现--exclude/--ignore选项的可行切入点在哪?

为bashcov添加--exclude/--ignore选项的可行修改切入点

背景

尝试为bashcov添加--exclude/--ignore选项时,难以确定修改的切入点。目前bashcov暂不支持该选项,可通过bashcov --help的输出验证:

bashcov --help
Usage: bashcov [options] [--] <command> [options]
Examples:
    bashcov ./script.sh
    bashcov --skip-uncovered ./script.sh
    bashcov -- ./script.sh --some --flags
    bashcov --skip-uncovered -- ./script.sh --some --flags

Specific options:
    -s, --skip-uncovered             Do not report uncovered files
    -m, --mute                       Do not print script output
        --bash-path PATH             Path to Bash executable
        --root PATH                  Project root directory
        --command-name NAME          Value to use as SimpleCov.command_name

Common options:
    -h, --help                       Show this message
        --version                    Show version

动机

bashcov会纳入非项目相关文件和目录(如.git文件夹、test/libs中的bats单元测试模块),导致难以准确评估项目自身代码的测试覆盖率。例如,某次报告显示覆盖率为17%,但实际项目自定义bash代码的测试覆盖率已达100%。

可选方案

  • 方案一:将参数传递给SimpleCov
    bashcov依赖simplecov,若修改bashcov将--exclude/--ignore参数传递给simplecov,即可实现需求。bashcov的参数解析逻辑位于lib/bashcov.rb文件中。

  • 方案二:修改bashcov的文件过滤逻辑
    若bashcov自行编译待检查文件列表,则可修改其逻辑,仅保留不在--exclude/--ignore目录/列表中的文件。但目前尚不清楚bashcov是否自行处理该逻辑,还是依赖simplecov完成。

    方案二细节

    可通过修改SimpleCov.start代码行添加过滤/排除列表,bashcov中的SimpleCov.start行位于bin/bashcov文件第17行。但目前尚未掌握在Ubuntu 22.10上本地编译、构建和安装bashcov的方法(而非通过sudo apt install bashcov安装默认版本)。

问题

修改bashcov以实现--exclude/--ignore功能的可行切入点是什么?


内容的提问来源于stack exchange,提问作者a.t.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:35:25