我正在尝试从flutter测试结果的测试覆盖率结果中排除几个config文件。当我运行flutter test --coverage时,输出文件icov.info也包含有关config文件的信息,这会影响总体覆盖率百分比。
flutter
config
flutter test --coverage
icov.info
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
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
wfauudbj3#
有一个方便的软件包可以完成此操作remove_from_coveragehttps://pub.dev/packages/remove_from_coverage这是使用帮助:
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中。
dev_dependencies
cwxwcias4#
我用https://pub.dev/packages/remove_from_coverage1.安装dart pub global activate remove_from_coverage1.运行覆盖率为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
dart pub global activate remove_from_coverage
remove_from_coverage -f coverage/lcov.info -r '^[^\/]+\/[^\/]+(?!.*\/use_cases\/).*$'
genhtml coverage/lcov.info -o coverage/html
4条答案
按热度按时间eimct9ow1#
如果你使用lcov,你可以:
ruyhziif2#
最正确的答案是使用预定义的注解,这些注解将在生成www.example.com文件时排除文件lcov.info。
查看GitHub issue了解更多细节:https://github.com/dart-lang/coverage/issues/162#issuecomment-702950122
wfauudbj3#
有一个方便的软件包可以完成此操作
remove_from_coverage
https://pub.dev/packages/remove_from_coverage
这是使用帮助:
如果你想在你的管道中运行它或全局安装它,基本上把它添加到你的
dev_dependencies
中。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