Ejecute una sola prueba de Android (unidad) desde gradle sin cargar otras dependencias de proyecto

Estoy usando el impresionante plugin de Jake Wharton para pruebas de unidad Android. Mi objetivo de tomar la molestia de obtener estas pruebas de unidad de ejecución, es para la velocidad (TDD rápida retroalimentación y todos).

He logrado configurarlo correctamente y hacer que algunas pruebas de ejemplo se ejecuten de la siguiente manera:

./gradlew test 

Cada vez que ejecuto las pruebas aunque me doy cuenta de la siguiente salida:

 Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0 The Test.testReportDir property has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the Test.getReports().getHtml().getDestination() property instead. The TaskContainer.add() method has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the create() method instead. :mySampleApp:preBuild UP-TO-DATE :mySampleApp:preDebugBuild UP-TO-DATE :mySampleApp:preReleaseBuild UP-TO-DATE :libraries:facebook:compileLint :libraries:facebook:copyReleaseLint UP-TO-DATE :libraries:facebook:mergeReleaseProguardFiles UP-TO-DATE :libraries:facebook:packageReleaseAidl UP-TO-DATE :libraries:facebook:preBuild UP-TO-DATE :libraries:facebook:preReleaseBuild UP-TO-DATE :libraries:facebook:prepareReleaseDependencies :libraries:facebook:compileReleaseAidl UP-TO-DATE :libraries:facebook:compileReleaseRenderscript UP-TO-DATE :libraries:facebook:generateReleaseBuildConfig UP-TO-DATE :libraries:facebook:mergeReleaseAssets UP-TO-DATE :libraries:facebook:mergeReleaseResources UP-TO-DATE :libraries:facebook:processReleaseManifest UP-TO-DATE :libraries:facebook:processReleaseResources UP-TO-DATE :libraries:facebook:generateReleaseSources UP-TO-DATE :libraries:facebook:compileRelease UP-TO-DATE :libraries:facebook:processReleaseJavaRes UP-TO-DATE :libraries:facebook:packageReleaseJar UP-TO-DATE :libraries:facebook:packageReleaseLocalJar UP-TO-DATE :libraries:facebook:packageReleaseRenderscript UP-TO-DATE :libraries:facebook:packageReleaseResources UP-TO-DATE :libraries:facebook:bundleRelease UP-TO-DATE :mySampleApp:prepareComAndroidSupportAppcompatV71800Library UP-TO-DATE :mySampleApp:preparemySampleAppandroidLibrariesFacebookUnspecifiedLibrary UP-TO-DATE :mySampleApp:prepareDebugDependencies :mySampleApp:compileDebugAidl UP-TO-DATE :mySampleApp:compileDebugRenderscript UP-TO-DATE :mySampleApp:generateDebugBuildConfig UP-TO-DATE :mySampleApp:mergeDebugAssets UP-TO-DATE :mySampleApp:mergeDebugResources UP-TO-DATE :mySampleApp:processDebugManifest UP-TO-DATE :mySampleApp:processDebugResources UP-TO-DATE :mySampleApp:generateDebugSources UP-TO-DATE 

Gradle parece estar cargando TODAS las dependencias de mi proyecto.

Mi prueba de muestra es la siguiente:

 package com.mycompany.mysampleapp; import org.junit.Test; import static org.fest.assertions.api.Assertions.assertThat; public class AdditionOperationsTest { @Test public void testModulus() { assertThat(1).isEqualTo(1); } } 

Esta prueba debería tomar una fracción de segundo para ejecutarse. Mi comprensión es que todo lo que pre-carga de las dependencias del proyecto está atascándola hacia abajo.

En los buenos días, me aseguraría de tener lo que necesito en el CLASSPATH y ejecutar algo como:

 javac src/test/java/main/java/com/micromobs/pkk/AdditionOperationsTest.java java org.junit.runner.JUnitCore com.micromobs.pkk.AdditionOperationsTest 

Teniendo en cuenta que este es un proyecto de Android con gradle, estoy asumiendo que tendría que hacer algo un poco diferente como crear tareas específicas en el archivo de compilación gradle, que incluyen sólo mis archivos de prueba para mi proyecto de ejemplo y, a continuación, ejecutar un comando gradle. / Gradlew taskName?

Pregunta: ¿Es posible ejecutar la prueba única "AdditionOperationsTest" dentro del contexto de mi proyecto (com.mycompany.mysampleapp) solo para que no cargue las dependencias externas del proyecto

Así es como se ven mis archivos de configuración:

 # settings.gradle include ':libraries:gradle-android-test-plugin' include ':libraries:facebook', ':mysampleapp' # build.gradle ... apply plugin: 'android-test' dependencies { testCompile 'junit:junit:4.10' testCompile 'org.robolectric:robolectric:2.1.+' testCompile 'com.squareup:fest-android:1.0.+' } # location of my test files: androidproj/mysampleapp/src/test/java/main/com/mycompany/mysampleapp/AdditionOperationsTest.java 

Debe ser capaz de hacerlo utilizando la opción de línea de comandos -a (sin reconstrucción de las dependencias del proyecto). La ejecución de gradle -a test debería dar lugar a que las libraries:facebook y mysampleapp no se reconstruyan.

EDIT: Como se indica a continuación, puede mejorar significativamente el rendimiento de su generación de Gradle mediante el daemon Gradle .

  • Proyecto de biblioteca de prueba autónoma no puede encontrar las clases de biblioteca
  • ¿Cómo ejecutar una prueba JUnit4 simple en Android Studio 1.1?
  • ¿Hay una manera de iniciar el emulador de Android en Travis CI construir?
  • Prueba de unidad de Android no se burla
  • Android Studio 1.1, instalación de prueba junit simple
  • Android Robolectric unidad de prueba de Marshmallow PermissionHelper
  • La clase de prueba de Android falla al compilar en eclipse con error de "falta de coincidencia vinculada"
  • Prueba de RxJava2 doOnComplete ()
  • Módulo de prueba de inyección con dagger2
  • Cómo burlar getApplicationContext
  • Cómo escribir una prueba de unidad para un controlador de excepción de subprocesos no detectados.
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.