Flutter代码覆盖率清理插件clean_coverage的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter代码覆盖率清理插件 clean_coverage 的使用

clean_coverage 是一个用于清理 LCOV 文件的 Dart 工具。它允许你通过 glob 模式匹配来移除不需要的文件记录,从而简化你的覆盖率报告。

安装 clean_coverage

首先,你需要全局安装 clean_coverage 插件:

pub global activate clean_coverage

使用方法

通过排除文件列表清理

你可以创建一个文本文件(例如 exclusions.txt),列出所有需要排除的文件路径模式。然后运行以下命令:

pub global run clean_coverage clean --exclusions-file exclusions.txt coverage/lcov.info

示例:exclusions.txt

**/*.g.dart
**/generated/**

直接在命令行中指定排除模式

你也可以直接在命令行中指定要排除的文件模式:

pub global run clean_coverage clean --exclusions '**/*.g.dart', '**/directory/**' coverage/lcov.info

示例 Demo

假设我们有一个 Flutter 项目,并且我们已经生成了覆盖率报告 coverage/lcov.info。为了演示如何使用 clean_coverage,我们将进行如下步骤:

  1. 创建一个 exclusions.txt 文件

    在项目的根目录下创建一个名为 exclusions.txt 的文件,并添加以下内容:

    **/*.g.dart
    **/generated/*
    
  2. 运行 clean_coverage 清理命令

    打开终端并执行以下命令来清理覆盖率报告中的无关文件记录:

    pub global run clean_coverage clean --exclusions-file exclusions.txt coverage/lcov.info
    

更多关于Flutter代码覆盖率清理插件clean_coverage的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter代码覆盖率清理插件clean_coverage的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用clean_coverage插件来清理代码覆盖率文件的详细步骤,包括相关的代码和配置示例。

安装clean_coverage插件

首先,你需要在你的Flutter项目中添加clean_coverage插件。你可以通过修改pubspec.yaml文件来完成这一操作。

dev_dependencies:
  flutter_test:
    sdk: flutter
  clean_coverage: ^x.y.z  # 请替换为最新的版本号

然后,在项目的根目录下运行以下命令来安装插件:

flutter pub get

配置clean_coverage

接下来,你需要在项目的根目录下创建一个名为.yamllint的配置文件(如果还没有的话),并在其中添加以下内容来配置clean_coverage

# .yamllint (这个文件可能已存在,用于其他配置)

# clean_coverage配置
coverage:
  ignore:
    - "**/*.g.dart"  # 忽略自动生成的文件
    - "**/*.freezed.dart"  # 忽略使用freezed库生成的文件
    - "test/**/*"  # 通常测试文件不需要包含在覆盖率报告中

注意:上面的ignore字段是可选的,你可以根据需要添加或删除路径模式。

使用clean_coverage清理覆盖率文件

一旦你安装并配置了clean_coverage插件,你可以通过以下命令来清理覆盖率文件:

flutter pub run clean_coverage

这个命令会删除所有旧的覆盖率文件,通常是.lcovlcov-report文件夹中的文件。

集成到CI/CD流程中

如果你正在使用CI/CD工具(如GitHub Actions、GitLab CI、CircleCI等),你可以将clean_coverage命令集成到你的构建脚本中。以下是一个GitHub Actions的示例:

# .github/workflows/flutter.yml

name: Flutter CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: subosito/flutter-action@v1
        with:
          channel: stable

      - name: Get dependencies
        run: flutter pub get

      - name: Run tests and generate coverage
        run: flutter test --coverage

      - name: Clean coverage files
        run: flutter pub run clean_coverage

      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v2
        with:
          file: ./lcov-report/info.lcov  # 假设你使用的是Codecov来显示覆盖率报告

在上面的示例中,flutter test --coverage命令会生成覆盖率文件,然后flutter pub run clean_coverage命令会清理旧的覆盖率文件,最后codecov/codecov-action会将覆盖率报告上传到Codecov(或其他覆盖率服务平台)。

总结

通过上述步骤,你可以在Flutter项目中成功配置和使用clean_coverage插件来清理旧的覆盖率文件。这不仅可以帮助你保持项目目录的整洁,还可以确保覆盖率报告只包含最新的测试数据。

回到顶部