2015-05-21 2 views
4

Как подключить источники от android.support.test.* для отладки в AS?
Пробовал загружать источники из https://android.googlesource.com/platform/frameworks/testing, но версия, похоже, не соответствует моей версии тестовой библиотеки.источники поддержки библиотеки поддержки в Android Studio

Источники тестирования (например, AndroidJunitRunner), похоже, не доступны через sdk manager, я что-то упускаю?

+0

Просто FYI: источник не на главной ветви, вы должны использовать ветвь «андроид-поддержка-тест» и вернуться назад по тегам (андроид-ЦЛ-2,0, андроид-ТСЛ-3,0, и т. д.) ... – Yenchi

+0

@Yenchi интересно, спасибо! – kiruwka

ответ

13

Я столкнулся с аналогичной проблемой, и это заняло довольно много времени, чтобы понять это. Это похоже на ошибку из-за отсутствующей задачи Gradle, которая не выполнялась, потому что SAME-конфигурация использовалась для работы, но не более того после обновления до AS v1.2 +.

Во-первых, следующая зависимость устарела.

androidTestCompile 'com.android.support.test:testing-support-lib:0.1' 

И он обновляется следующим образом в documentation.

androidTestCompile 'com.android.support.test:runner:0.2' 
androidTestCompile 'com.android.support.test:rules:0.2' 
... 

Значение по умолчаниюConfig должно включать следующую строку, как обычно.

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

Кроме того, убедитесь, что репозиторий поддержки Android установлен через диспетчер SDK.

Если параметр android.support.test. * Не может быть разрешен, выполните ручную задачу Gradle вручную следующим образом.

  1. Щелкните по вкладке Gradle справа.
  2. Свернуть ваш Android-модуль и бросить узел Задачи.
  3. Двойной щелчок для выполнения Другие-> generateDebugAndroidTestSources

Если преуспевшие, проблема может быть решена. По крайней мере, это работает для меня.

UPDATE:

Похоже, есть еще шансы это может произойти на AS 2.1.2. Следует отметить, что если у вас есть несколько модулей Android, выполнение задачи градации generateDebugAndroidTestSources из одного конкретного должно быть достаточно для всех, особенно для модуля библиотеки Android.

enter image description here

+0

Спасибо, впрочем, пока нет источников. У меня нет 'generateDebugAndroidTestSources' в моем приложении Task-> others, только' generateDebugTestSources'. Где предполагается, что генерируемые источники должны быть расположены? – kiruwka

+0

В любом случае, обновление до AS 1.2 было отличной идеей, у них, похоже, декомпилятор по умолчанию, что помогает получить и понять, что происходит во время отладки, спасибо большое! – kiruwka

+0

Вероятно, это означает, что ваше приложение не является модулем Android или источники тестирования не находятся под управлением src/androidTest/java. Убедитесь, что вы следуете за соглашением, а репозиторий поддержки Android действительно загружен в вашем Android/sdk/extras/android/m2repository /. – Farley

0

Вы можете использовать Espresso для UI-тестов и Robolectric + JUnit + Mockito для модульных тестов.

Используйте AndroidJunitRunner, добавьте его build.gradle как:.

android { 
    defaultConfig { 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
} 

Использование некоторых пакетов android.support.test * вам необходимо добавить зависимости, как

dependencies { 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0' 
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1' 
    androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.0') { 
     exclude module: 'support-annotations' 
    } 
} 
+0

У меня есть все настройки зависимостей. Мне нужно подключить источник того, что объявлено как: 'com.android.support.test: testing-support-lib: 0.1' в вашем примере – kiruwka

+0

Я добавляю зависимости и мои файлы Gradle загружают jar или arr файлы. Используйте Google, чтобы получить руководство по исходному коду. – Injury

2

я страдал этой проблемой в последнее время и Я решаю это сейчас. После добавления следующих зависимостей и Sync Project with Gradle file я не могу найти какую-либо относительную библиотеку в папке External Library.

androidTestCompile 'com.android.support.test:runner:0.2' 
androidTestCompile 'com.android.support.test:rules:0.2' 
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1' 

Что я делаю, чтобы заменить все androidTestCompile на compile и Sync Project with Gradle file. и я вижу относительные библиотеки.

Последнее, я заменяю compile назад на androidTestCompile и Sync Project with Gradle file. Относительные библиотеки все еще существуют.

Я хочу опубликовать изображения, чтобы сделать их более четкими, но я новичок здесь и не могу публиковать изображения. Надеюсь, это вам поможет.

+0

изменение «androidTestCompile» на «компиляцию» и синхронизацию сработало для меня, но переход на «androidTestCompile» дал мне такую ​​же проблему. –

Смежные вопросы