Мульти-проекты androidTest зависимости - PullRequest
0 голосов
/ 17 декабря 2018

Я столкнулся с проблемой ниже.У меня есть три проекта.Я называю их проектами A, B и lib

Project Lib
-> androidTest
   -> utilityfile.kt

Project A
-> androidTest
   -> <use utilityfile.kt here>

Project B
-> androidTest
   -> <use utilityfile.kt here>

Теперь у меня есть одна утилита внутри проекта lib, которая, очевидно, является библиотечным проектом.Я могу поместить свой служебный файл только внутри androidTest, а не в основной или тестовый каталог.(Это то, что я не могу изменить)

Теперь я хочу получить доступ к той тестовой утилите, которая находится внутри модуля lib, в проекты A и B. Но gradle выдает мне ошибки во время выполнения.

Ошибка - «ошибка компиляции», когда я пытаюсь запустить тестовый пример Android в проекте A или B.

Я много искал и обнаружил, что при использовании старой версии Gradle был способ, например

https://stackoverflow.com/a/32083131/1166926

testCompile project(':libProject').sourceSets.test.output

, а также https://stackoverflow.com/a/5648565/1166926

Но они не работают для меня сейчас, так как новый Gradle не поддерживает это сейчас.

Что можно сделать для доступа к файлам класса androidTest в каталог androidTest другого проекта?

1 Ответ

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

Вы должны извлечь эту тестовую утилиту в отдельный модуль библиотеки, а затем добавить ее как androidTestImplementation в проектах A, B и Lib.

Например:

TestUtils Lib
-> src/main/java
   -> UtilityFile.kt

Project A
-> androidTestImplementation project(":testUtils")

Project B
-> androidTestImplementation project(":testUtils")

Project Lib
-> androidTestImplementation project(":testUtils")
...