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
更多关于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