Junit тестирование с помощью gradle для андроидного проекта

Я пытаюсь получить тесты (junit и robolectric), работающие в Android-проекте, но я полностью застрял. Моя основная проблема заключается в том, что все тесты, которые я нашел с помощью gradle, как-то тянут в java-плагин, а затем я получаю эту ошибку:

The 'java' plugin has been applied, but it is not compatible with the Android plugins. 

Единственный выход, который я вижу на данный момент, – это разделить проект на тест и приложение, но я бы хотел этого избежать. Любые примеры / подсказки будут высоко оценены!

В официальной документации нет упоминания об модульном тестировании – только Instrumentation-Tests, но я хочу, чтобы модульные тесты быстро получали результаты.

Вам не нужен плагин Java, поскольку Android позаботится о том, что вам нужно в основном, от того, что я видел до сих пор.

Мне удалось запустить тесты Robolectric и junit через блог этого человека: http://tryge.com/2013/02/28/android-gradle-build/

Мой файл build.gradle выглядит так (где мои тестовые файлы находятся в каталоге {projectdir} / test.

 ... // Unit tests sourceSets { unitTest { java.srcDir file('test') resources.srcDir file('test/resources') } } dependencies { unitTestCompile files("$project.buildDir/classes/debug") unitTestCompile 'junit:junit:4.11' unitTestCompile 'org.robolectric:robolectric:2.1.1' unitTestCompile 'com.google.android:android:4.0.1.2' } configurations { unitTestCompile.extendsFrom runtime unitTestRuntime.extendsFrom unitTestCompile } task unitTest(type:Test, dependsOn: assemble) { description = "run unit tests" testClassesDir = project.sourceSets.unitTest.output.classesDir classpath = project.sourceSets.unitTest.runtimeClasspath } build.dependsOn unitTest 

AndroidStudio и новый плагин Android Gradle теперь предлагают официальную поддержку тестирования модулей.

Это поддерживается в Android Studio 1.1+ и Android Gradle версии 1.1.0+

Зависимости теперь можно объявить как testCompile:

 dependencies { testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" } 

Подробнее здесь: Поддержка тестирования модулей – Сайт проекта Android Tools .

Это руководство может помочь – http://www.slideshare.net/tobiaspreuss/how-to-setup-unit-testing-in-android-studio

Последний градус теста должен быть в androidTest dir

Также в вашем gradle.build:

 dependencies { androidTestCompile 'junit:junit:4.+' } 

Также добавьте те, которые находятся по умолчаниюConfig {

 testPackageName "test.java.foo" testInstrumentationRunner "android.test.InstrumentationTestRunner" 

}

Это то, что сработало только для меня:

 androidTestCompile 'net.bytebuddy:byte-buddy-android:0.7.8' 

Вы должны использовать этот doc https://developer.android.com/training/testing/unit-testing/local-unit-tests.html. Он описывает тесты без инструментария, которые запускаются на машине разработчика, а не на устройстве Android.

Intereting Posts
ImageView разбил приложение Установите таймаут на URL.openStream () Android Мягкая клавиатура вводит ручку события Aapt не найден при создании нового приложения для Android в NetBeans Как сделать HTTP-запрос с помощью файлов cookie на Android? Превышение максимального значения по методу Multidex во время выполнения единичных тестовых примеров Входное текстовое поле скрыто за клавиатурой на Android-браузере Chrome OpenOptionsMenu () не будет работать в appcompat-v7 22.1.0 или новее Android навигационная система навигации Как начать работу андроида из eclipse с помощью пользовательского намерения Как разобрать JSON из Java HTTPResponse? База данных базы данных Android SQLite, блокировка и версия Как скомпилировать библиотеку с исходным кодом с помощью инструментов NDK? Google Analytics для Android. Пользователи, получающие уведомления, считаются активными Могу ли я настроить мой эмулятор Android, чтобы он быстро работал?