1

Мне нужно разработать тест на инструментальные средства для моего приложения для Android, а также мне нужно реализовать интерфейс IdlingResource для моего приложения, чтобы сообщить Espresso, что активность неактивна; так что я должен добавить Эспрессо зависимости в два раза, один в нормальной компиляции и один в тестовой компиляции, выглядит следующим образом:Зависимости эспрессо, добавленные в нормальных и тестовых компиляциях

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    [...] 
    compile('com.android.support.test.espresso:espresso-core:2.2.2') { 
     exclude module: 'support-annotations' 
    } 
    androidTestCompile('com.android.support.test:runner:0.5') { 
     exclude module: 'support-annotations' 
    } 
    androidTestCompile('com.android.support.test:rules:0.5') { 
     exclude module: 'support-annotations' 
    } 
    // The following lib is already imported in a standard way, but needs to be imported again 
    // in the test environment. 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') { 
     exclude module: 'support-annotations' 
    } 
    androidTestCompile('com.android.support.test.espresso:espresso-intents:2.2.2') { 
     exclude module: 'support-annotations' 
    } 
    [...] 
} 

Но делать нормальную компиляцию приложения не работает:

Error:Execution failed for task ':app:processDebugAndroidTestResources'. 
> java.io.FileNotFoundException: [...]/app/build/intermediates/symbols/androidTest/debug/R.txt (No such file or directory) 

Я делаю что-то неправильно?

ответ

2

Удалить из ваших build.gradle:

compile('com.android.support.test.espresso:espresso-core:2.2.2') { 
     exclude module: 'support-annotations' 
} 

См this, Вам нужно добавить compile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2' вместо целого Эспрессо-ядра Lib.