В чем разница между папками src / androidtest и src / test?

В проекте по умолчанию на Android Studio есть две тестовые папки.

Первый – src/androidTest . Эта папка уже существовала в предыдущей версии Android Studio. Тем не менее, с некоторого времени есть новая тестовая папка по умолчанию src/test и новая зависимость testCompile 'junit: junit: 4.12' в build.gradle .

Мой вопрос: какую папку я использую для тестирования и различия между ними?

src/androidTest предназначен для модульных тестов, в которых используется андроид.

src/test – это чисто модульный тест, который не связан с инфраструктурой Android. Вы можете запускать тесты здесь без работы на реальном устройстве или на эмуляторе.

Вы можете использовать обе папки. Используйте первый, чтобы проверить код, использующий фреймворк Android. Используйте второй, чтобы проверить код, являющийся чистыми классами Java. Методы написания тестов почти одинаковы.

Подробнее здесь: http://developer.android.com/tools/testing/testing_android.html

Большой источник информации, относящейся к тестированию Android в целом, – это страница разработчиков « Лучшие практики тестирования» :

  • Локальные тесты ( /src/test/java/ )

Единичные тесты, которые выполняются локально на виртуальной машине Java (JVM). Используйте эти тесты, чтобы свести к минимуму время выполнения, когда ваши тесты не имеют зависимостей от платформы Android или когда вы можете издеваться над зависимостями платформы Android.

  • Инструментальные тесты ( /src/androidTest/java/ )

Единичные тесты, которые запускаются на устройстве Android или эмуляторе. Эти тесты имеют доступ к информации Instrumentation, такой как контекст приложения, которое вы тестируете. Используйте эти тесты, когда ваши тесты имеют зависимости от Android, которые макетируют объекты, которые не могут удовлетворить.

https://developer.android.com/training/testing/start/index.html