Android gradle androidTestApi & testApi конфигурация устарела - PullRequest
0 голосов
/ 01 октября 2018

Я получил 2 модуля, модуль A и модуль B. Модуль B зависит от модуля A, модуль A делит библиотеки зависимостей с модулем B с помощью конфигурации api.

При настройке тестовой среды внутри модуля A я также использую testApi & androidTestApi для создания модуля B с использованием общих тестовых библиотек.Однако после запуска Gradle Sync я получил предупреждение: WARNING: Configuration 'testApi' is obsolete and has been replaced with 'testImplementation'.

Прочитайте предоставленную ссылку и там говорится, что other modules can't depend on androidTest, you get the following warning if you use the androidTestApi configuration.Поэтому я должен определить тестовые библиотеки в модуле B в моем примере, чтобы пропустить это предупреждение.

У меня есть несколько вопросов об этой ситуации:

  1. Почему один модуль не должен зависеть от тестирования зависимостей другого модуля, хотя он может зависеть от обычных зависимостей, определенных как api?
  2. Должны ли мы в любом случае заставить модуль B зависеть от тестовых библиотек модуля A без определения этих библиотек снова в модуле B?

Большое спасибо

1 Ответ

0 голосов
/ 06 декабря 2018

Я сделал это, создав собственную конфигурацию.В вашем случае внутри build.gradle файлового модуля A добавьте:

configurations {
    yourTestDependencies.extendsFrom testImplementation
}

dependencies {
    // example test dependency
    testImplementation "junit:junit:4.12"
    // .. other testImplementation dependencies here
}

А в build.gradle модуля B добавьте:

dependencies {
    testImplementation project(path: ':moduleA', configuration: 'yourTestDependencies')
}

Вышеприведенное будет включать все testImplementationзависимости, объявленные в модуле A от модуля B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...