Тесты эспрессо не могут получить доступ к файлу класса

Я получаю следующие ошибки, когда пытаюсь запустить тест пользовательского интерфейса.

/Users/etiennelawlor/workspace/MovieHub/app/src/androidTest/java/com/etiennelawlor/moviehub/MoviesFragmentTest.java 

Error:(34, 28) error: cannot access AppCompatActivity class file for android.support.v7.app.AppCompatActivity not found 

Error:(34, 58) error: cannot infer type arguments for ActivityTestRule<> 

Error:(41, 41) error: cannot access IdlingResource class file for android.support.test.espresso.IdlingResource not found 

Error:(51, 40) error: cannot access RecyclerView class file for android.support.v7.widget.RecyclerView not found 

Error:Execution failed for task ‘:app:compileDebugAndroidTestJavaWithJavac’.
Compilation failed; see the compiler error output for details.

Вот мой тестовый класс: >https://github.com/lawloretienne/MovieHub/blob/226492727e4d467b337ed4b689edb05eec0368c2/app/src/androidTest/java/com/etiennelawlor/moviehub/MoviesFragmentTest.java

Я что-то упускаю?

Вот мой файл Gradle

https://github.com/lawloretienne/MovieHub/blob/master/app/build.gradle


person toobsco42    schedule 15.11.2017    source источник
comment
Я не уверен, но попробуйте исключить recyclerview из эспрессо в градиенте.   -  person Elvedin Selimoski    schedule 15.11.2017
comment
Я могу закомментировать эту строку, и тогда эта ошибка не будет выдаваться, но есть другие ошибки, которые все равно будут выдаваться.   -  person toobsco42    schedule 15.11.2017
comment
Можете ли вы опубликовать свой град   -  person Elvedin Selimoski    schedule 15.11.2017
comment
Я только что обновил, чтобы включить ссылку на мой файл Gradle   -  person toobsco42    schedule 15.11.2017


Ответы (1)


build.gradle явно исключает все зависимости рабочего apk, что, в свою очередь, исключает библиотеку совместимости из инструментального apk. Я не уверен, зачем это нужно, потому что я никогда не сталкивался с этой ошибкой, упомянутой в комментарии.

По сути, удаление этого блока:

configurations.implementation.dependencies.all { implementationDependency ->
    println "Excluding implementation dependency: ${implementationDependency.getName()}"
    configurations.androidTestImplementation.dependencies.all { androidTestImplementationDependency ->
        configurations.androidTestImplementation.exclude module: "${implementationDependency.getName()}"
    }
}

исправит это.

person Be_Negative    schedule 15.11.2017
comment
Большое спасибо, это сработало. Я собираюсь подождать, пока я не смогу создать награду за этот вопрос и вознаградить вас наградой, потому что я изо всех сил пытался решить эту проблему в течение нескольких месяцев. - person toobsco42; 15.11.2017
comment
Эй, не могли бы вы объяснить, как вы поняли, что этот блок сценария вызывает проблему ?? Эта проблема также возникает с примером codelabs. - person navalkishoreb; 12.12.2017
comment
Большое спасибо за найденное решение. - person navalkishoreb; 12.12.2017