¿Cómo puedo crear una estructura de prueba en Android Studio?

Tengo un proyecto que se ha migrado recientemente a Android Studio (y gradle). Ahora quiero crear un conjunto de pruebas para ello. Lamentablemente, no estoy seguro de cómo hacerlo en Android Studio (era tan fácil en Eclipse ADT).

Tengo la siguiente estructura de archivos: estructura del proyecto

Mi build.gradle se parece a:

apply plugin: 'android' repositories { maven { url 'libs'} } sourceSets { testLocal { java.srcDir file('src/test/java') resources.srcDir file('src/test/resources') } } dependencies { compile 'com.larswerkman.holocolorpicker:holocolorpicker:1.1' compile fileTree(dir: 'libs', include: '*.jar') testLocalCompile 'junit:junit:4.8.2' testLocalCompile 'com.google.android:android:4.0.1.2' testLocalCompile 'com.google.android:support-v4:r6' } android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { testPackageName "com.glasstowerstudios.stainedglass.test" testInstrumentationRunner "android.test.InstrumentationTestRunner" } } task localTest(type: Test, dependsOn: assemble) { testClassesDir = sourceSets.testLocal.output.classesDir android.sourceSets.main.java.srcDirs.each { dir -> def buildDir = dir.getAbsolutePath().split('/') buildDir = (buildDir[0..(buildDir.length - 4)] + ['build', 'classes', 'debug']).join('/') sourceSets.testLocal.compileClasspath += files(buildDir) sourceSets.testLocal.runtimeClasspath += files(buildDir) } classpath = sourceSets.testLocal.runtimeClasspath } check.dependsOn localTest 

La prueba que he creado se llama AllTests.java , y sólo tiene una sola aseveración en este momento (sólo estoy tratando de obtener la configuración del marco de prueba antes de implementar la lógica de prueba real:

 import junit.framework.Assert; import junit.framework.TestCase; package com.glasstowerstudios.stainedglass.test; public class AllTests extends TestCase { public void setUp() { } public void tearDown() { } public void testStartup() { Assert.assertEquals(true, true); } } 

Cuando ejecuto la compilación tiene éxito, incluso si hago gradle localTest de la línea de comando. Sin embargo, dentro de Android Studio, cuando hago clic derecho en AllTests.java y selecciono Run AllTests , obtengo el siguiente error:

 Error running 'AllTests': Class 'AllTests' not found in module 'stainedglass' 

Estoy pensando que esto tiene algo que ver con la forma en que creé la prueba (creó los directorios uno a la vez dentro de la prueba / y luego creó el archivo a través de New -> File tanto, creo que simplemente simplemente no se añade al módulo de la misma forma que decir, el directorio src/main/java es (se puede ver en el diagrama – src/main/java está en azul, mientras src/test/java sigue siendo naranja.

¿Cuál es la forma "correcta" de crear una estructura de prueba para el código existente en Android Studio?

  • Android JUnit Pruebas ... Cómo esperar una excepción
  • ¿Puede Android ServiceTestCase <MyService> enviar mensajes a mi servicio?
  • Vinculación de Android y prueba JUnit de notificación
  • './gradlew -Dtest.single = SimpleTest test' ejecuta todas las pruebas que tengo
  • Cobertura de métodos en una aplicación de Android sin código fuente
  • Probar la base de datos en Android: ProviderTestCase2 o RenamingDelegatingContext?
  • ¿Cuál es el propósito de las anotaciones de @SmallTest, @MediumTest y @LargeTest en Android?
  • Cómo probar el archivo java generado automáticamente usando JUnit para mi AIDL
  • Gradle Android No se pudo encontrar el método testPackage ()
  • Identificador de dispositivo del emulador de Android
  • Uso de una carpeta de recursos en el proyecto de prueba para datos de cadena de prueba
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.