Есть ли способ позволить mockito генерировать макеты для интеграционных тестов в проекте Flutter?

Mockito создает макеты для всех классов в @GenerateMocksannotatio. Это делается для тестов в 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/**

Узнать больше:

  1. По умолчаниюsources- build/build_runner_core/lib/src/generate/options.dart
  2. «Как я могу включить дополнительные источники в свою сборку?» из build/docs/faq.md
  3. По умолчаниюgenerate_for- макет/build.yaml
Другие вопросы по тегам