unitarias - Excepción en el hilo "principal" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
unit test android studio (8)
Estoy intentando compilar mi proyecto Android en Android Studio 0.3.0. Hoy recibo el siguiente error:
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 3 more
Process finished with exit code 1
Hacer algunas búsquedas web me lleva a pensar que este problema está relacionado de alguna manera con JUnit. Sin embargo, no estoy usando JUnit en mi proyecto. Tal vez inadvertidamente he activado alguna opción? En ese caso, ¿cómo desactivo la prueba unitaria en mi proyecto? ¿Algunas ideas?
En mis Configuraciones de ejecución / depuración, tenía MyTest en AndroidTest y en JUnitTest. El MyTest en AndroidTests se configuró correctamente, pero todavía tengo el error ''NoClassDefFoundError: junit / textui / ResultPrinter''. Hizo clic en MyTest bajo JUnit y presionó ''-'' en la esquina superior izquierda. Esto permitió que MyTest se ejecutara a través del dispositivo eliminó el error.
Finalmente lo encontré. Está en el diálogo Ejecutar / Configuraciones de depuración. Deshabilitado JUnit y compila de nuevo.
Fuerza al proyecto a "sincronizar" a través del menú: Herramientas> Android> Sincronizar proyecto con archivos Gradle o forzar el proyecto a "sincronizar" haciendo un cambio falso en el archivo build.gradle (agrega un espacio y luego elimínalo y luego haz clic en "sincronizar" ahora").
He tenido este problema dos veces después de cambiar algunos complementos y dependencias de build.gradle
.
Simplemente apagando y encendiendo Android Studio nuevamente lo solucioné para mí (versiones 2.1.2 y 2.2).
Para las pruebas JUnit estándar, le falta la biblioteca JUnit, intente agregar esto en build.gradle:
dependencies {
...
testCompile ''junit:junit:4.12''
...
}
Y asegúrese de colocar las pruebas en el directorio "prueba" paralelamente al paquete "principal" (las pruebas de instrumentación van a "prueba android", pero esa es una configuración diferente).
Por lo general, este problema se debe a un tipo de prueba incorrecto: Junit en lugar de Android Test
Simplemente poniendo la solución que funcionó para mí, debería intentarlo si está configurando el entorno por primera vez:
Para Windows: 1) en las variables de entorno agregue una nueva "variable de sistema" ANDROID_SDK_HOME = D: / Archivos de programa / android-sdk-windows (seleccione su directorio de inicio de sdk para Android)
2) modifique la ruta de las variables del sistema, agregue "% Android_SDK_HOME% / tools;"
Todas las respuestas son buenas-
Asegúrese de que have sourceSets tenga el directorio de prueba registrado.
android{
...
defaultConfig {
...
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
sourceSets {
androidTest {
java.srcDirs = [''src/androidTest/java'']
}
}
}
dependencies{
...
androidTestCompile ''junit:junit:4.12''
androidTestCompile ''com.android.support.test:runner:0.5''
}