インストルメンテーション テスト用のクラスを作成しようとしています。このクラスは androidTest フォルダにありますapp\src\androidTest\java\...
。しかし、AndroidJUnit4
解決ActivityTestRule
できません。インポートステートメントでimport android.support.test.runner.AndroidJUnit4
は、「ランナー」という単語は赤で表示されています。テストクラスは Kotlin です。私はそれを削除してJavaで作成しようとしましたが、それでもAdnroidJUnit4をインポートできません。同様の質問をいくつか読みましたが、私の場合の解決策が見つかりませんでした。これら 2 つは、プロジェクトとアプリの build.gradle ファイルです。私の gradle ファイルに問題はありますか? アプリ build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.sample.me"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
archivesBaseName = "$applicationId-$versionName-$versionCode"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// For room compat
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
}
sourceSets {
androidTest.assets.srcDirs +=
files("$projectDir/schemas".toString())
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
}
}
buildToolsVersion '27.0.3'
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// Room
implementation "android.arch.persistence.room:runtime:$rootProject.ext.roomVersion"
kapt "android.arch.persistence.room:compiler:$rootProject.ext.roomVersion"
// Support libs
implementation "com.android.support:recyclerview-v7:$rootProject.ext.supportVersion"
implementation "com.android.support:design:$rootProject.ext.supportVersion"
implementation "com.android.support:cardview-v7:$rootProject.ext.supportVersion"
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportVersion"
implementation "com.android.support.test.espresso:espresso-idling-resource:$rootProject.ext.espressoVersion"
implementation 'joda-time:joda-time:2.9.9'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$rootProject.ext.kotlinVersion"
// Dependencies for local unit tests
testImplementation "junit:junit:$rootProject.ext.junitVersion"
testImplementation "org.hamcrest:hamcrest-all:$rootProject.ext.hamcrestVersion"
testImplementation "org.mockito:mockito-core:$rootProject.ext.mockitoVersion"
// Android Testing Support Library's runner and rules
androidTestImplementation "com.android.support.test:runner:$rootProject.ext.runnerVersion"
androidTestImplementation "com.android.support.test:rules:$rootProject.ext.runnerVersion"
// Dependencies for Android unit tests
androidTestImplementation "junit:junit:$rootProject.ext.junitVersion"
androidTestImplementation "org.mockito:mockito-android:$rootProject.ext.mockitoVersion"
//androidTestImplementation "com.android.support.test.espresso:espresso-core:$rootProject.ext.espressoVersion"
androidTestImplementation "com.android.support.test.espresso:espresso-contrib:$rootProject.ext.espressoVersion"
androidTestImplementation "com.android.support.test.espresso:espresso-intents:$rootProject.ext.espressoVersion"
// Resolve conflicts between main and test APK: not resolve
androidTestImplementation "com.android.support:support-annotations:$rootProject.ext.supportVersion"
androidTestImplementation "com.android.support:support-v4:$rootProject.ext.supportVersion"
androidTestImplementation "com.android.support:recyclerview-v7:$rootProject.ext.supportVersion"
androidTestImplementation "com.android.support:appcompat-v7:$rootProject.ext.supportVersion"
androidTestImplementation "com.android.support:design:$rootProject.ext.supportVersion"
androidTestImplementation "com.android.support.test.espresso.idling:idling-concurrent:$rootProject.ext.espressoVersion"
androidTestImplementation "android.arch.persistence.room:testing:$rootProject.ext.roomVersion"
}
repositories {
mavenCentral()
}
トップ build.gradle
ext {
// Sdk and tools
compileSdkVersion = 26
targetSdkVersion = 26
minSdkVersion = 19
buildToolsVersion = '27.0.1'
supportVersion = '27.0.2'
// App dependencies
espressoVersion = '3.0.1'
roomVersion = '1.1.0-alpha1'
junitVersion = '4.12'
mockitoVersion = '2.8.47'
hamcrestVersion = '1.3'
runnerVersion = '1.0.1'
rulesVersion = '1.0.1'
espressoVersion = '3.0.1'
}
buildscript {
ext.kotlinVersion = '1.2.21'
ext.gradlePluginVersion = '2.3.0'
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0-beta1' // Use plain string for auto update
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
allprojects {
repositories {
jcenter()
google()
maven { url 'https://maven.google.com' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
更新最後に、これはプロジェクト パスに空白があるためであることがわかりました。スペースを削除したので、クラスをインポートできるようになりました。