dart 如何排除Flutter试验覆盖范围内的文件?

nwwlzxa7  于 2023-06-19  发布在  Flutter
关注(0)|答案(4)|浏览(154)

我正在尝试从flutter测试结果的测试覆盖率结果中排除几个config文件。当我运行flutter test --coverage时,输出文件icov.info也包含有关config文件的信息,这会影响总体覆盖率百分比。

eimct9ow

eimct9ow1#

如果你使用lcov,你可以:

- flutter test --coverage
- lcov --remove coverage/lcov.info 'lib/mock/*' 'lib/utils/l10n/*' 'lib/utils/colors.dart' -o coverage/new_lcov.info
- genhtml coverage/new_lcov.info --output=coverage
ruyhziif

ruyhziif2#

最正确的答案是使用预定义的注解,这些注解将在生成www.example.com文件时排除文件lcov.info。

// coverage:ignore-file
// coverage:ignore-[start/end]
// coverage:ignore-line

查看GitHub issue了解更多细节:https://github.com/dart-lang/coverage/issues/162#issuecomment-702950122

wfauudbj

wfauudbj3#

有一个方便的软件包可以完成此操作remove_from_coverage
https://pub.dev/packages/remove_from_coverage
这是使用帮助:

Remove files with paths matching given PATTERNs from the lcov.info FILE
-f, --file=<FILE>         the target lcov.info file to manipulate
-r, --remove=<PATTERN>    a pattern of paths to exclude from coverage
-h, --help                show this help

如果你想在你的管道中运行它或全局安装它,基本上把它添加到你的dev_dependencies中。

cwxwcias

cwxwcias4#

我用https://pub.dev/packages/remove_from_coverage
1.安装dart pub global activate remove_from_coverage
1.运行覆盖率为flutter test --coverage的测试
1.过滤你的lcov文件。在我的例子中,我使用项目的use_cases文件夹进行过滤。remove_from_coverage -f coverage/lcov.info -r '^[^\/]+\/[^\/]+(?!.*\/use_cases\/).*$'
另外,如果你喜欢可视化html文件的覆盖率,你可以使用genhtml。genhtml coverage/lcov.info -o coverage/html

相关问题