Как исключить файл в тестовом покрытии флаттера?

Я пытаюсь исключить несколько 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 .

  1. установитьdart pub global activate remove_from_coverage
  2. Запустить тест с покрытиемflutter test --coverage
  3. Отфильтруйте файл lcov. В моем случае я фильтрую папки use_cases моего проекта.remove_from_coverage -f coverage/lcov.info -r '^[^\/]+\/[^\/]+(?!.*\/use_cases\/).*$'

Кроме того, если вам нравится визуализация покрытия в html-файле, вы можете использовать genhtml.genhtml coverage/lcov.info -o coverage/html

Другие вопросы по тегам