Как исключить файл в тестовом покрытии флаттера?
Я пытаюсь исключить несколько config
файлы из результатов испытаний покрытия в flutter
результаты теста. Когда я бегу flutter test --coverage
, выходной файл icov.info
имеет информацию о config
файлы, что влияет на общий процент охвата.
4 ответа
Если вы используете 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
Самый правильный ответ — использовать предопределенные комментарии, которые исключат файлы при генерации файла lcov.info .
// coverage:ignore-file
// coverage:ignore-[start/end]
// coverage:ignore-line
Дополнительные сведения см. в выпуске GitHub:https://github.com/dart-lang/coverage/issues/162#issuecomment-702950122 .
Для этого есть удобный пакет 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
если вы хотите запустить это в своем конвейере или установить глобально.
Я использую https://pub.dev/packages/remove_from_coverage .
- установить
dart pub global activate remove_from_coverage
- Запустить тест с покрытием
flutter test --coverage
- Отфильтруйте файл lcov. В моем случае я фильтрую папки use_cases моего проекта.
remove_from_coverage -f coverage/lcov.info -r '^[^\/]+\/[^\/]+(?!.*\/use_cases\/).*$'
Кроме того, если вам нравится визуализация покрытия в html-файле, вы можете использовать genhtml.genhtml coverage/lcov.info -o coverage/html