修改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.
相关产品推荐
相关产品推荐

