peo*_*mes 16 testing code-coverage flutter
我正在使用Android Studio作为我的IDE开发Flutter应用程序.
我正在尝试编写测试并检查代码覆盖率,但我无法弄清楚如何在IDE或任何其他应用程序中查看数据.
通过运行flutter test --coverage
A覆盖率报告似乎生成一个文件/coverage/Icov.info
该文件看起来像这样:
SF:lib\data\Customer.g.dart
DA:9,2
DA:10,2
DA:11,2
DA:12,2
DA:13,2
DA:20,0
DA:21,0
DA:22,0
DA:23,0
DA:24,0
....
Run Code Online (Sandbox Code Playgroud)
查看该文件,它似乎有一个包含逐行覆盖数据的项目文件列表.有没有办法在Android Studio中查看此信息?
Jak*_*Jak 22
您还可以安装文件lcov并将其转换icov.info为HTML页面,然后在浏览器中使用排序选项查看结果
在Ubuntu中安装:
sudo apt-get update -qq -y
sudo apt-get install lcov -y
Run Code Online (Sandbox Code Playgroud)
在Mac中安装:
brew install lcov
Run Code Online (Sandbox Code Playgroud)
生成测试文件并转换为HTML
flutter test --coverage
genhtml coverage/icov.info -o coverage/html
Run Code Online (Sandbox Code Playgroud)
注意:这样你可以把它添加到circleci文物和coveralls以及
I M*_*ita 10
我刚刚开发了一个简单的 dart 包(test_cov_console),因此您可以直接从 Android Studio 终端运行它。该工具将读取由 flutter test --coverage 生成的 lcov.info。找到此链接获取源代码。
您可以全局安装该库,因此它不会更改您当前的项目:
flutter pub global activate test_cov_console
Run Code Online (Sandbox Code Playgroud)
并运行它:
flutter pub global run test_cov_console
Run Code Online (Sandbox Code Playgroud)
这是输出示例:
flutter pub run test_cov_console
---------------------------------------------|---------|---------|---------|-------------------|
File |% Branch | % Funcs | % Lines | Uncovered Line #s |
---------------------------------------------|---------|---------|---------|-------------------|
lib/src/ | | | | |
print_cov.dart | 100.00 | 100.00 | 88.37 |...,149,205,206,207|
print_cov_constants.dart | 0.00 | 0.00 | 0.00 | no unit testing|
lib/ | | | | |
test_cov_console.dart | 0.00 | 0.00 | 0.00 | no unit testing|
---------------------------------------------|---------|---------|---------|-------------------|
All files with unit testing | 100.00 | 100.00 | 88.37 | |
---------------------------------------------|---------|---------|---------|-------------------|
Run Code Online (Sandbox Code Playgroud)
输出可以保存到 CSV 文件:
flutter pub run test_cov_console -c --output=coverage/test_coverage.csv
Run Code Online (Sandbox Code Playgroud)
示例 CSV 输出文件:
File,% Branch,% Funcs,% Lines,Uncovered Line #s
lib/,,,,
test_cov_console.dart,0.00,0.00,0.00,no unit testing
lib/src/,,,,
parser.dart,100.00,100.00,97.22,"97"
parser_constants.dart,100.00,100.00,100.00,""
print_cov.dart,100.00,100.00,82.91,"29,49,51,52,171,174,177,180,183,184,185,186,187,188,279,324,325,387,388,389,390,391,392,393,394,395,398"
print_cov_constants.dart,0.00,0.00,0.00,no unit testing
All files with unit testing,100.00,100.00,86.07,""
Run Code Online (Sandbox Code Playgroud)
Kim*_*Kim 10
Flutter 增强套件正是这样做的。它是一个 Android Studio/IntelliJ 插件,可生成覆盖率报告。它显示每个文件的覆盖范围,并突出显示覆盖的行(行号旁边的红色/绿色条):
从插件选项(首选项>插件>市场选项卡 > 搜索Flutter 增强套件)安装插件。
创建新的运行配置以进行覆盖率测试
(运行>编辑配置> 单击加号按钮添加新配置 >在下拉列表中选择Flutter Test )
命名您的配置(例如“所有测试”),设置范围以及包含测试的文件或目录。
使用顶部菜单的覆盖范围来运行测试。
2020 年 5 月 9 日更新:
原来你可以直接运行flutter test --coverage,然后在同一个终端会话中运行bash <(curl -s https://codecov.io/bash) -t token令牌应该是你从CodeCov获得的存储库令牌。该命令应自动查找并上传覆盖率数据,并将在您的 CodeCov 仪表板上可见。所以你不需要Bitrise。
原来的:
我一直在使用Bitrise对我的 flutter 项目进行持续集成,有一种简单的方法可以将您的报告发送到CodeCov,然后在那里进行可视化。这需要您获得一些关于如何设置和使用 Bitrise 的知识,但它的很多知识都是自动的,所以不用担心,如果您是一个小团队,您应该可以使用免费套餐。以下是让 CodeCov 工作的关键点。
1) 确保将 --coverage 变量添加到 Flutter Test 工作流程中。
2) 添加来自 CodeCov 的令牌作为密钥,您需要注册 CodeCov 并链接您的存储库以接收令牌。
3) 添加 CodeCov 工作流并选择 CODECOV_TOKEN 键。
之后,您应该能够启动构建,如果成功,您应该在 CodeCov 上看到您的仪表板更新。
这是您要运行以在 macOS 上的浏览器中查看测试覆盖率的内容
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html
open coverage/html/index.html
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3165 次 |
| 最近记录: |