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


119

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

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

Какую папку использовать для тестирования? В чем разница между ними?

Ответы:


134

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

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

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

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



Вы только что спасли мне день
Си Джонсон

как насчет androidTestDebug?
the_prole 07

48

Отличным источником информации о тестировании Android в целом является страница разработчиков Best Practices for Testing :

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.