Flutter代码质量报告插件dart_dot_reporter的使用

Flutter代码质量报告插件dart_dot_reporter的使用

简介

dart_dot_reporter 是一个用于生成简洁且可读性高的测试报告的插件,适用于 Dart 和 Flutter 项目。该工具受到 webdriver.io 的 dot-reporter 启发。

以下是 dart_dot_reporter 的一些特性:

  • 提供简洁的测试报告。
  • 支持多种标志选项以定制输出。
  • 适合在 CI 环境中查看结果。

示例输出

示例输出


安装

要使用 dart_dot_reporter,可以通过以下命令安装:

使用 pub 全局激活

pub global activate dart_dot_reporter

或者使用 flutter 命令:

flutter pub global activate dart_dot_reporter

安装完成后,确保将 $HOME/.pub-cache/bin 添加到系统路径中。

更新插件

更新插件时,只需再次运行相同的激活命令:

pub global activate dart_dot_reporter

使用方法

Dart 项目

在 Dart 项目中使用 dart_dot_reporter,首先需要生成机器可读的日志文件(JSON 格式),然后将其传递给插件进行解析。

pub run test --reporter=json > machine.log || echo 'Tests failed'
dart_dot_reporter machine.log

Flutter 项目

在 Flutter 项目中使用类似的方法:

flutter test --machine > machine.log || echo 'Tests failed'
flutter pub global run dart_dot_reporter machine.log

参数说明

dart_dot_reporter 支持以下参数:

dart_dot_reporter <machine.log> [flags]

必须参数

  • <machine.log>: 测试日志文件路径。

可选标志

标志 描述
-h 获取帮助信息。更多详情请参考 GitHub。
--hide-skip 隐藏跳过测试的输出。
--show-success 显示成功测试的输出。
--show-id 显示从机器日志中获取的测试 ID。
--show-message 显示失败测试的错误消息。
--no-color 禁用颜色输出。
--fail-skipped 如果有跳过的测试,返回退出码 1。

示例代码

示例 1: 基本用法

输入日志 (before)

00:01 +1 -1: test/dart_dot_reporter_test.dart: parser can parse file with lines containing json [E]
  Expected: TestModel:<TestModel { 29 State.Failure API update Expected: {
                        'id': 103                      }
              Actual: {
                        'ids': 102,
                      }
               Which: is missing map key 'id'
             }>
    Actual: TestModel:<TestModel { 29 State.Failure API update  Expected: {
                        'id': 103
                      }
              Actual: {
                        'ids': 102,
                      }
               Which: is missing map key 'id'
             }>

  package:test_api                       expect
  test/dart_dot_reporter_test.dart 37:7  main.<fn>.<fn>

00:01 +1 -2: test/dart_dot_reporter_test.dart: dot_reporter Ignore "loading" tests [E]
  Expected: <2>
    Actual: <5>
  Unexpected number of calls

  package:test_api                         expect
  package:mockito/src/mock.dart 866:5      VerificationResult.called
  test/dart_dot_reporter_test.dart 106:29  main.<fn>.<fn>

输出报告 (after)

.XX

X parser can parse file with lines containing json
X dot_reporter Ignore "loading" tests

Total: 3
Success: 1
Skipped: 0
Failure: 2

带颜色的输出

带颜色的输出


示例 2: 使用标志

命令行

dart_dot_reporter machine.log --show-message --show-success --show-id

输出报告

.!XX

27 . API getAll
28 ! API delete
29 X API update
  Expected: {
            'id': 103
          }
  Actual: {
            'ids': 102,
          }
  Which: is missing map key 'id'

31 X API too big print text

Total: 4
Success: 1
Skipped: 1
Failure: 2

已知问题

  • 如果测试名称以 loading / 开头,该测试会被跳过。

TODO 列表

  • 计算测试执行时间,并显示耗时最长的测试。
  • 支持管道模式,例如:pub run test --reporter=json | dart_dot_reporter

开发

要运行插件的开发版本,请使用以下命令:

dart bin/dart_dot_reporter.dart

更多关于Flutter代码质量报告插件dart_dot_reporter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter代码质量报告插件dart_dot_reporter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


dart_dot_reporter 是一个用于生成 Dart 代码质量报告的 Flutter 插件。它可以帮助开发者分析代码质量,生成报告,并以可视化的方式展示代码的复杂度、依赖关系等信息。以下是如何使用 dart_dot_reporter 插件的步骤:

1. 安装 dart_dot_reporter

首先,你需要在 pubspec.yaml 文件中添加 dart_dot_reporter 依赖:

dev_dependencies:
  dart_dot_reporter: ^0.1.0

然后运行 flutter pub get 来安装依赖。

2. 运行代码分析

dart_dot_reporter 依赖于 dart analyze 命令来生成代码分析报告。你可以通过以下命令运行代码分析:

flutter analyze

3. 生成 DOT 文件

dart_dot_reporter 可以将代码分析结果转换为 DOT 文件格式。DOT 是一种图形描述语言,通常用于生成依赖图或流程图。

运行以下命令生成 DOT 文件:

flutter pub run dart_dot_reporter

这将在项目根目录下生成一个 .dot 文件,通常命名为 dependency_graph.dot

4. 可视化 DOT 文件

生成的 DOT 文件可以通过 Graphviz 工具进行可视化。如果你没有安装 Graphviz,可以通过以下方式安装:

  • macOS: brew install graphviz
  • Ubuntu: sudo apt-get install graphviz
  • Windows: 下载并安装 Graphviz

安装完成后,使用以下命令将 DOT 文件转换为图像:

dot -Tpng dependency_graph.dot -o dependency_graph.png

这将生成一个 dependency_graph.png 文件,你可以打开它来查看代码的依赖关系图。

5. 自定义报告

dart_dot_reporter 提供了一些配置选项,允许你自定义生成的报告。你可以在 pubspec.yaml 中添加配置:

dart_dot_reporter:
  output: "custom_output.dot"
  include: ["lib/"]
  exclude: ["lib/tests/"]
  • output: 指定生成的 DOT 文件的输出路径。
  • include: 指定要分析的目录。
  • exclude: 指定要排除的目录。

6. 集成到 CI/CD

你可以将 dart_dot_reporter 集成到 CI/CD 流程中,自动生成代码质量报告。例如,在 GitHub Actions 中,你可以添加以下步骤:

- name: Run Dart Code Analysis
  run: flutter analyze

- name: Generate DOT Report
  run: flutter pub run dart_dot_reporter

- name: Visualize DOT Report
  run: dot -Tpng dependency_graph.dot -o dependency_graph.png
回到顶部