¿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:
- @VisibleForTesting no funciona como se esperaba
- ¿Cómo obtener el título de AlertDialog?
- Deshabilitar animaciones para pruebas en servicios en la nube (por programa?)
- ¿Cuál es la diferencia entre CTS y GTS?
- Cómo agregar carpetas de prueba a un antiguo proyecto de Android Studio
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?
- ¿Cómo construir una prueba de lanzamiento apk para Android con Gradle?
- Herramienta de prueba de mutación para Android
- ¿Es posible probar contra la versión de lanzamiento de tu aplicación con el complemento Android Gradle?
- Prueba de unidad de android: borrar prefs antes de la actividad de prueba
- Cómo crear un módulo de prueba para probar una biblioteca de Android en IntelliJ IDEA
- Hacer que el emulador de Android funcione más rápido
- Cómo instalar la aplicación sin firmar Android en el dispositivo?
- Junit.framework.AssertionFailedError: Excepción en constructor: (java.lang.NoClassDefFoundError)
- Descarga de datos y actualización de la interfaz de usuario
- La vista desaparece cerca del final de la animación RotationY