Уже день, когда я ищу решение своей проблемы, поэтому я отправляю его.
Я использую Espresso для запуска тестов Android.Все отлично работает для Lollipop и новее, но не для более старых версий Android (от API 16, который является целью проекта, до API 21, который является первой рабочей версией).
Моя проблема в том, что файлы, используемые для тестовони находятся в папке /androidTest
для Android Lollipop и новее, но для более старых версий используется вариант по умолчанию, который называется «mock».
Например, у меня есть класс UserManager в папках / mock и / androidTest, и янужны тесты, чтобы использовать один из каталога / androidTest.
Знаете ли вы, как это исправить?Это нарушает тесты только для Android 4.x, для более новых версий ожидаемое поведение происходит, поэтому я действительно разочарован.
Я попытался установить sourceSets, но это не решило мою проблему.
Я увидел, что multiDex может помешатьс androidTest, поэтому я попробовал некоторые решения, которые работали для других, но это тоже не помогло.
Я бы посоветовал, если кто-то может помочь.
Спасибо
Android Studio 3.2.1
Gradle 4,6
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "my.app"
minSdkVersion 16
targetSdkVersion 28
versionCode Integer.parseInt(app_version_code)
versionName app_version_name
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
}
dependencies {
testImplementation 'junit:junit:4.12'
testImplementation 'org.json:json:20140107'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
}