CommonsWare является правильным.Вам просто нужно создать каталог androidTest
и изменить конфигурацию в build.gradle
(грубо говоря).
- Перейти к
Project
Просмотр - Щелкните правой кнопкой мыши на
src
- Выберите
View in Terminal
контекстную опцию - Выполните
ls
в src
каталоге - Выполните
mkdir androidTest
и mkdir main
и переместите com
вmain
перейти к build.gradle
и заменить src
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// ...
}
на src/main
(и, возможно, также установить корень на androidTest
)
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main']
resources.srcDirs = ['src/main']
aidl.srcDirs = ['src/main']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
androidTest {
java.srcDirs = ['src/androidTest/java']
}
androidTest.setRoot('src/androidTest')
// ...
}
тогда весь блок набора исходных кодов будет выглядеть для меня как минимум
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main']
resources.srcDirs = ['src/main']
aidl.srcDirs = ['src/main']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
androidTest {
java.srcDirs = ['src/androidTest/java']
}
androidTest.setRoot('src/androidTest')
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
, наконец, не забудьте добавить бегун по умолчанию, если он еще не включен, так что это
defaultConfig {
applicationId "com.slacorp.myApp"
minSdkVersion 19
targetSdkVersion 26
versionCode 190
versionName "23.5"
}
становится этим
defaultConfig {
applicationId "com.slacorp.myApp"
minSdkVersion 19
targetSdkVersion 26
versionCode 190
versionName "23.5"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
, затем добавляет зависимости, таким образом это
dependencies {
implementation project(':lib-android-common-ui')
implementation project(':android-lite')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation project(':lib-j-rci')
}
становится этим
dependencies {
implementation project(':lib-android-common-ui')
implementation project(':android-lite')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation project(':lib-j-rci')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
и затем синхронизирует Gradle, затем добавьте тестовый классс импортом
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("foo", appContext.getPackageName());
}
}
, если это не работает, выполните file > sync with file system
и file > invalidate and restart