Я новичок в мире тестирования и даже больше в мире тестирования Android. Во время исследования Robolectric, которое помогает с тестами на Android, меня больше всего смущает одна вещь. Иногда в сети я вижу людей, использующих testCompile
ключевое слово в зависимостях скрипта сборки gradle при обращении к Robolectric, в то время как другие используют androidTestCompile
. Конечно, оба не могут быть действительными?
Может кто-нибудь объяснить разницу между ними и какой из них следует использовать при использовании Robolectric?
testCompile
конфигурацию. Зависимости, добавленные вandroidTestCompile
конфигурацию, будут доступны только источнику в src / androidTest, который фактически встроен в APK и развернут на устройстве.Чтобы ответить на ваш вопрос - используйте testCompile для робоэлектрика
почему, потому что robolectric работает на JVM, имитируя все поведение устройства Android.
testCompile и androidTestCompile - это "по соглашению" папки Android, которые Gradle использует при выполнении задач, предоставляемых плагином Android.
androidTestDebug выбирает тесты из папки androidTest, testDebug выбирает тесты из тестовой папки,
Опять же, это только условные папки, которые вы можете предоставить исходные наборы для этих конфигураций.
Примечание: эспрессо - такая классная библиотека, попробуйте отойти от робоэлектрика :)
источник
// модульное тестирование
testCompile 'junit:junit:4.12'
Приведенный выше код является зависимостью JUnit 4 в файле build.gradle в студии Android. Вы видите, что у него есть testCompile, потому что JUnit работает на JVM и не требует для запуска устройства или эмулятора. Это также означает, что тесты JUnit не требуют запуска контекста приложения, и, если они этого требуют, нам нужно будет их «ЗАМКЕТАТЬ».
// Интегрированное модульное тестирование
androidTestCompile('com.android.support.test:runner:0.5', { exclude group: 'com.android.support', module: 'support-annotations' })
Теперь мы видим здесь androidTestCompile, потому что на этот раз мы намерены использовать устройство или эмулятор для тестов, то есть инструментального тестирования. Для лучшего разъяснения я предлагаю прочитать с сайта developer.android.com.
источник
Чтобы добавить зависимость для тестирования JVM или модульного тестирования (тестирование основывается только на среде Java, нам не нужна среда Android).
Используем директиву testCompile. Пример:
dependencies { testCompile gradleTestKit() }
Чтобы добавить тест Dependency for Instrumentation (тестирование в основном полагается на среду Android), мы используем
androidTestCompile
директиву.источник