Отладочные модульные тесты с использованием IntelliJ / AndroidStudio

Я использую плагин robolectric gradle для написания модульных тестов для Android. Пока все отлично работает, кроме возможности правильно отлаживать мои тесты с помощью Android Studio.

Я провел некоторое расследование ( http://forums.gradle.org/gradle/topics/how_do_you_attach_a_debugger_to_gradle_so_that_i_can_debug_it_running_a_task ), и я закончил:

  1. Начните отладочную конфигурацию gradle из консоли gradlew -DtestDebug.debug=true app:clean app:testDebug Это остановит сборку градиента и дождитесь прослушивания на 5005

  2. Создайте конфигурацию запуска «Remote» в Android Studio, которая будет подключаться к порту 5005

  3. Запустите эту конфигурацию из Android Studio в режиме Debug

Шаг 1 + 3 должен выполняться каждый раз, я хочу отлаживать свои тесты. Это очень раздражает. Я хотел бы иметь способ, что я могу сразу запустить сборку градиента из intelliJ, которая автоматически присоединяет отладчик. Как я могу это сделать?

Info: (Конечно, идеальным решением было бы то, что я могу запускать модульные тесты напрямую через JUnit-конфигурацию IntelliJ, так как это обеспечило бы мне поддержку IDE, аккуратное отображение неудачных и проходящих тестов и т. Д. Но у меня возникли проблемы с JUnit не создает файл манифеста и т. Д., Поэтому я отказался от этого на данный момент.)

** Файл сборки Gradle **

 apply plugin: 'com.android.application' buildscript { repositories { mavenCentral() } dependencies { classpath 'org.robolectric:robolectric-gradle-plugin:0.12.+' } } apply plugin: 'robolectric' android { compileSdkVersion 20 buildToolsVersion "20.0.0" packagingOptions { exclude 'LICENSE.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE' } defaultConfig { applicationId "test.fs.test" minSdkVersion 14 targetSdkVersion 20 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile 'org.hamcrest:hamcrest-integration:1.1' androidTestCompile 'org.hamcrest:hamcrest-core:1.3' androidTestCompile 'org.hamcrest:hamcrest-library:1.1' androidTestCompile('junit:junit:4.11') { exclude module: 'hamcrest-core' } androidTestCompile('org.robolectric:robolectric:2.3') { exclude module: 'classworlds' exclude module: 'commons-logging' exclude module: 'httpclient' exclude module: 'maven-artifact' exclude module: 'maven-artifact-manager' exclude module: 'maven-error-diagnostics' exclude module: 'maven-model' exclude module: 'maven-project' exclude module: 'maven-settings' exclude module: 'plexus-container-default' exclude module: 'plexus-interpolation' exclude module: 'plexus-utils' exclude module: 'wagon-file' exclude module: 'wagon-http-lightweight' exclude module: 'wagon-provider-api' } } apply plugin: 'idea' idea { module { testOutputDir = file('build/test-classes/debug') } }