Как создать общий каталог для обмена кодом между интеграционными тестами и тестами виджетов?

Как создать каталог общего кода между тестами интеграции и тестами виджетов во флаттере? Их может быть совсем немного, так как теперь они используют тот же API, что и новый официальный

в собственном Android вы можете сделать следующее, чтобы иметь код, который используется совместно локальными неинструментированными UI-тестами (Roboelectric под капотом) и инструментальными тестами Espresso с Espresso API. И, конечно же, разные общие помощники, mocks, что угодно.

Как достичь аналогичной цели во Flutter?

       // This allows us to share classes between androidTest & test directories.
    android.sourceSets {
        test {
            java.srcDirs += "$projectDir/src/testShared"
        }
        androidTest {
            java.srcDirs += "$projectDir/src/testShared"
        }
    }

1 ответ

Это может быть достигнуто с помощью общего пакета (а именно).

  1. Создайте пакет для своих тестовых кодов (во избежание путаницы: ваш код будет записан в папке lib ).

запустить:

      flutter create --template=package test_base
  1. Добавьте свой основной пакет в качестве зависимости, чтобы у вас был доступ к кодам основного пакета.

test_base / pubspec.yaml:

      dependencies:
  <your-package-name>:
    path: ../
  1. Добавьте в свою основную библиотеку как dev-dependency.

./pubspec.yaml:

      dev_dependencies:
  test_base:
    path: test_base/

Теперь вы можете импортировать пакет в свой виджет / тесты интеграции .

Примечание: таким образом внутри test_baseвы можете импортировать пакеты транзитивных зависимостей (зависимости вашего основного пакета) без ошибки компиляции. Но в dart не рекомендуется явно импортировать пакеты зависимостей, которые вы явно не определяете, и, вероятно, столкнутся с предупреждениями линтера или компиляции в будущих версиях dart (в настоящее время это 2.13.4 и никаких предупреждений). Это означает, что вам нужно явно определить эти зависимости в test_base/pubspec.yaml. Хотя я думаю, что это так, было бы безвредно импортировать пакеты транзитивных зависимостей.

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