私はAndroidスタジオテストをいくつか持っています。カスタムテストランナーは、Android Studio 2.1にアップグレードしていくつかのライブラリバージョンをバンプしてから、時間の経過と共にいくつかのことをしました。今、私のテストは、StackOverflowについて何百万回も尋ねられている恐ろしいUnable to find instrumentation info for: ComponentInfo{}
でもう実行されません。テストコードがコンパイルされず、非テストとして扱われています
さらに調査すると、Android Studioは単にテストコードをコンパイルしないように見えます。つまり、テストランナー用のComponentInfoは見つからないため、コードは含まれません。私は、テストを実行しようとすると問題を起こさないコンパイルエラーをテストコードに追加することで検証しました。
さらに、テストコードは、ハイライトの構文で非テストコードのように扱われるようですか?例として、テストランナーはandroid.support.test.runner.AndroidJUnitRunner
をインポートしますが、runner
は、そのライブラリが欠けているように赤で強調表示されます(しかし、それはグラデルファイル内にandroidTestCompile
として表示されます)。それをcompile
に変更すると、シンタックスハイライトは幸せです。しかし、テストコードはテストコードのように黄色でプロジェクトビューに表示されます。
Android Studioがテスト用にコンパイルするものが何であるかはわかりません。設定は簡単です。私のファイル階層がつまり
app
+--src
+ +--main
+ | +--java
+ | +--com/package/files
+ |
+ +--androidTest
+ +--java
+ +--com/package/files
で、アプリ/ srcに/メイン/ javaの/ COM/...と、アプリ/ SRC/androidTest /のJava/COM ....メインのアプリとテストの両方があります同じパッケージを使用してください。
build.gradle(関連部分):テスト用
apply plugin: 'com.android.application'
android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion '24.0.0 rc3'
defaultConfig {
multiDexEnabled = true
applicationId 'com.package'
minSdkVersion 10
targetSdkVersion 23
versionCode 2
versionName '0.8a'
signingConfig signingConfigs.release
testInstrumentationRunner 'com.package.TestRunner'
}
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.release
}
}
productFlavors {
}
dexOptions {
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
checkReleaseBuilds true
abortOnError true
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2'
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'com.android.support:support-annotations:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
[...]
}
apply plugin: 'com.google.gms.google-services'
実行/デバッグの構成は、同様に簡単です - それは、Androidのテストだ、計装ランナーがcom.package.TestRunner
です。私は何度も清掃/再建を試みました。
共有いただきありがとうございます。私は同じ問題を抱えていましたが、カスタムフレーバーで気づくのが難しくなりました:・)ありがとう、ありがとう! –