Есть ли способ позволить mockito генерировать макеты для интеграционных тестов в проекте Flutter?
Mockito создает макеты для всех классов в
@GenerateMocks
annotatio. Это делается для тестов в
test
папка, но не для тестов в
integration_test
папка. Как мне это изменить?
2 ответа
TL;DR
Добавьте файл build.yaml со следующим содержимым в корневую папку проекта.
targets:
$default:
sources:
- $package$
- lib/$lib$
- lib/**.dart
- test/**.dart
- integration_test/**.dart
builders:
mockito|mockBuilder:
generate_for:
- test/**.dart
- integration_test/**.dart
Объяснение
Оба и необходимы, чтобы сообщить mockBuilder, какие файлы следует обрабатывать.
Конфигурация - это только подмножество всех файлов, используемых построителем. Но по умолчанию в эти файлы не входит папка integration_test. Чтобы изменить это, мы можем перечислить исходные файлы вручную. Мы должны включить источники по умолчанию
$package$
а также
lib/$lib$
, иначе мы получим предупреждения.
Включив любую папку - в нашем случае 'integration_test', она также будет доступна для
generate_for
.
Вот отрывок из build_config / README.md:
- generate_for: Список строк или карт, необязательно :. Подмножество файлов в целевых файлах, к которым должен быть применен этот Builder. Видеть
sources
выше, чтобы узнать, как это настроить.
а также:
- источники : список строк или карта, необязательно. Набор файлов в пакете, составляющих эту цель. Файлы указываются с использованием синтаксиса glob. Если используется список строк, они считаются включенными глобусами. Если используется карта, могут быть только ключи и. Любой файл, который соответствует любому глобусу в и без глобусов в
exclude
считается источником цели. Когдаinclude
опускается, каждый файл считается совпадающим.
Чтобы продолжить ответ герра Йора :
targets:
$default:
sources:
include:
- $package$
- lib/$lib$
- lib/**
- test/**
- integration_test/**
builders:
mockito|mockBuilder:
generate_for:
include:
- test/**
- integration_test/**
Узнать больше:
- По умолчанию
sources
- build/build_runner_core/lib/src/generate/options.dart - «Как я могу включить дополнительные источники в свою сборку?» из build/docs/faq.md
- По умолчанию
generate_for
- макет/build.yaml