2016-05-10 2 views
3

У меня есть некоторые контрольные тесты для Android с помощью специального тестового бегуна, который, казалось, работал нормально, пока в какой-то момент после того, как я обновился до Android Studio 2.1, натолкнулся на некоторые версии библиотеки и сделал некоторые другие вещи с течением времени. Теперь мои тесты больше не запускаются с ужасным Unable to find instrumentation info for: ComponentInfo{}, о котором уже много раз спрашивали о StackOverflow.Тестовый код не компилируется и не обрабатывается

После дальнейших исследований, похоже, что 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/ком .... И главное приложение и тесты используйте тот же пакет.

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 Test, инструментовка бегун com.package.TestRunner. Я много раз пытался очистить/перестроить.

ответ

2

Ответ настолько смущающий, что я не должен публиковать его.

«Build Variant» для всех моих модулей был установлен в «Release», поэтому ни один из тестовых материалов не был скомпилирован. Установка его в «Debug» позаботилась об этой проблеме. Было бы неплохо, если бы Android Studio была немного более вокальной, как предупреждение о запуске тестов при использовании осколков релиза.

+0

Спасибо за обмен! У меня была такая же проблема, но с особым вкусом ... это затрудняет замечать: ·) Спасибо, спасибо! –