Coverde
用于基本覆盖跟踪文件操作的CLI。
安装
您可以通过执行以下命令使 coverde 在全局可用
$ dart pub global activate coverde
注意: 要直接从终端运行 coverde,请将系统缓存 bin 目录添加到您的 PATH 环境变量。
coverde check
检查从跟踪文件中计算出的覆盖率值。
参数
| 订单 | 描述 | 必需 |
|---|---|---|
| 唯一参数 | 一个介于0到100之间的整数,用作最低可接受覆盖率值。 | ✔ |
选项
| 选项 | 描述 | 默认值 |
|---|---|---|
--input-i |
用于覆盖率检查的跟踪文件。 | coverage/lcov.info |
标志
| 国旗 | 描述 | 默认值 |
|---|---|---|
| 启用 • --verbose• -v禁用 • --no-verbose |
打印覆盖率值。 | 已启用 |
示例
coverde check 90coverde check 75 -i lcov.infocoverde check 100 --no-verbose
结果


coverde filter
过滤跟踪文件中包含的已测试文件。
选项
| 选项 | 描述 | 默认值 |
|---|---|---|
--input-i |
要过滤的覆盖率跟踪文件。 | coverage/lcov.info |
--output-o |
过滤后的覆盖率跟踪文件(如果不存在,则自动创建)。 | coverage/filtered.lcov.info |
--filters-f |
一组用逗号分隔的模式,用于排除文件的覆盖率。 | |
--mode-m |
生成过滤后跟踪文件的模式。a:追加内容。w:覆盖内容。 |
a (追加内容) |
示例
coverde filtercoverde filter -f \.g\.dartcoverde filter -f \.freezed\.dart -mode wcoverde filter -o coverage/tracefile.info
coverde remove
删除一组文件和文件夹。
标志
| 国旗 | 描述 | 默认值 |
|---|---|---|
| 启用 • --accept-absence禁用 • --no-accept-absence |
根据文件/文件夹的存在情况设置命令行为。 如果启用,命令将继续并通知元素不存在。 如果禁用,命令将失败。 |
已启用 |
示例
coverde remove file.txtcoverde remove path/to/folder/coverde remove path/to/another.file.txt path/to/another/folder/ local.folder/
coverde report
生成HTML覆盖率报告。
选项
| 选项 | 描述 | 默认值 |
|---|---|---|
--input-i |
用于报告生成的覆盖率跟踪文件。 | coverage/lcov.info |
--output-o |
生成报告文件将被放置的目标文件夹。 | coverage/html/ |
--medium |
覆盖率值的中间阈值。 | 75 |
--high |
覆盖率值的高阈值。 | 90 |
报告样式根据个人、组和全局覆盖率以及 --medium 和 --high 选项动态设置。
标志
| 国旗 | 描述 | 默认值 |
|---|---|---|
| 启用 • --launch• -l禁用 • --no-launch |
在默认浏览器中启动生成的报告。 | 禁用 |
示例
coverde reportcoverde report -i coverage/tracefile.info --medium 50coverde report -o coverage/report --high 95 -l
结果


coverde value
从跟踪文件中计算并显示覆盖率值。
选项
| 选项 | 描述 | 默认值 |
|---|---|---|
--input-i |
用于覆盖率值计算的覆盖率跟踪文件。 | coverage/lcov.info |
标志
| 国旗 | 描述 | 默认值 |
|---|---|---|
| 启用 • --verbose• -v禁用 • --no-verbose |
打印跟踪文件包含的每个源文件的覆盖率值。 | 已启用 |
示例
coverde valuecoverde value -i coverage/tracefile.info --no-verbose
与 melos 的用法
如果您的项目使用 melos 来管理其多包结构,则将测试覆盖率数据收集到统一的跟踪文件中可能会很有用。
这可以通过如下定义一个 melos 脚本来实现
M:
description: Merge all packages coverage tracefiles ignoring data related to generated files.
run: >
coverde rm MELOS_ROOT_PATH/coverage/filtered.lcov.info &&
melos exec --file-exists=coverage/lcov.info -- coverde filter --input ./coverage/lcov.info --output MELOS_ROOT_PATH/coverage/filtered.lcov.info --filters \.g\.dart
M 是 melos 脚本,它合并了项目中所有被测试包的覆盖率跟踪文件。
此 melos 脚本会忽略扩展名为 .g.dart 的生成源文件,但可以通过设置 --filters 选项来调整此行为。
生成的跟踪文件是位于项目根文件夹的 coverage 文件夹中的 filtered.lcov.info 文件。
CI 的覆盖率检查集成
如果您的项目在 CI 中使用 GitHub Actions,您可能已经知道 very_good_coverage,它提供了一种简单而有效的方法来进行覆盖率验证。
然而,在其他替代方案托管的 CI 工作流中添加覆盖率检查并不总是那么直接。
为了解决这个问题,在根据您的项目需求启用 Dart 或 Flutter 的 CI 工作流后,您可以通过将以下命令添加到工作流步骤来使用 coverde 及其 check 工具
dart pub global activate coverdecoverde check <min_coverage>
错误或请求
如果您遇到任何问题或认为 CLI 缺少某个功能,请随时在 GitHub 上打开一个 issue。
也欢迎提交 Pull Request。请参阅 CONTRIBUTING.md。