У меня есть один проект библиотеки и некоторые основные проекты, которые зависят от этого проекта библиотеки.Антенные контрольно-измерительные приборы и проекты библиотеки
Я хочу написать тесты для основных проектов, но тесты общих функций должны быть помещены в проект библиотеки для уменьшения дублирования кода.
Я добавил следующие строки в библиотеки build.gradle
:
dependencies {
compile Dependencies.appCompat
compile Dependencies.recyclerView
compile Dependencies.cardView
compile Dependencies.playAds
compile Dependencies.googleAnalytics
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true
}
// Unit testing dependencies
androidTestCompile 'junit:junit:4.12'
// Set this dependency if you want to use the Hamcrest matcher library
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'com.android.support.test:runner:+'
androidTestCompile 'com.android.support.test:rules:+'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'org.mockito:mockito-core:1.+'
androidTestCompile "com.google.dexmaker:dexmaker:1.2"
androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.2"
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}
в главном build.gradle
есть:
dependencies {
compile project(':library')
}
Но в тестах для основного проекта я получаю следующее сообщение об ошибке: error: package android.support.test.espresso does not exist
по следующей строке
import android.support.test.espresso.UiController;
Но эспрессо импортируется в проект библиотеки. Похоже, что проект библиотеки не компилируется как тест для Android.
Можно ли устранить эту проблему?
Ваше предложение выглядит очень хорошо. Но в моем случае 'test-library' также нуждается в библиотеке, потому что общий тестовый код зависит от этой библиотеки. Таким образом, в основной библиотеке проекта код включает в себя два раза, которые вызывают проблемы с папкой res. Знаете ли вы о возможном решении? –