2009-08-09 16 views
18

Estoy intentando ejecutar casos de prueba JUnit4 en Eclipse 3.4.2 pero ni siquiera está comenzando para mí. Tengo el junit-4.7.jar en mi ruta de compilación y la aplicación de prueba.JUnit4 + Eclipse "Se produjo un error interno al iniciar"

Aquí está un ejemplo simple que ilustra mi problema

package test; 
import org.junit.Before; 
import org.junit.Test; 

public class UTest {  
    @Test 
    public void test() { 
    } 

    @Before 
    public void setUp() throws Exception { 
    } 
} 

Este compila bien

Entonces hago "caso Ejecutar prueba de JUnit" de Eclipse y me sale un diálogo de error con este mensaje

"Launching UTest' has encountered a problem 
An internal error occurred during: "Launching UTest". 
java.lang.NullPointerException 

¿Qué causa estas NullPointerExceptions? ¿Qué estoy haciendo mal?

Respuesta

3

que era capaz de solucionar este simplemente eliminando el espacio de trabajo y el directorio de Eclipse y empezar de nuevo.

+0

¿Ha vuelto a importar el proyecto o vuelve a generarlo arrastrando archivos manualmente?Parece mucho trabajo que simplemente evita los problemas, no lo resuelve. – WhyNotHugo

+0

Sí, tiene que importar para importar todos los archivos manualmente pero su configuración de editor de eclipse cambiará. – J4cK

1

Tu código funciona bien para mí.

Eclipse Versión: 3.4.1 Build Identificación: M20080911-1700

botón derecho del ratón sobre el archivo .java EjecutarComo JUnit Test. Esto indicaría que el problema está causado por un problema de configuración de Eclipse, no por un problema de código.

2

¿Ha buscado en el registro de errores de Eclipse? Puede verlo abriendo la vista "Error Log".

http://help.eclipse.org/help32/topic/org.eclipse.pde.doc.user/guide/tools/views/error_log.htm

+0

No se pudo encontrar esa vista. La vista de problemas no está relacionada, este es un error interno de eclipse, la vista de problemas solo muestra errores en el proyecto. – WhyNotHugo

+0

Dije la vista Errores ... no la vista de Problemas. –

+2

Lo sentimos, tienes razón. Aunque no tengo una vista de Errores:/ – WhyNotHugo

1

Gracias que resolvió mi problema también. El problema comenzó cuando eliminé un viejo simulador y creé uno nuevo. Solución: al igual que OP dice quitar el espacio de trabajo, asegúrese de mantener los proyectos dentro :) y luego importarlos de nuevo a eclipse "¿Suena como un montón de trabajo"? ¡Me llevó menos de medio minuto!

3

Esto funcionó para mí:

  1. crear otra copia de la clase de prueba (CopyOfUTest.java)
  2. ejecutar la copia para asegurarse de que pasa
  3. entrar en Ejecutar> Ejecutar configuraciones
  4. en JUnit, encuentre las configuraciones de ejecución para la clase original y la clase copiada
  5. haga clic derecho y elimine la configuración de la clase original
  6. cambiar el nombre de la configuración de la clase copiado en el nombre de configuración original
  7. eliminar la clase copiado del proyecto
+0

Esto no funcionó para mí; el alcance del problema parece más allá de la única clase de prueba. – Sam

0

me encontré con un problema similar, pero estoy usando Python. Esto es lo que hice para resolverlo/evitarlo:

  1. Se eliminó mi archivo .project y el proyecto de Eclipse.
  2. Creó el proyecto de nuevo.
  3. Todo estaba funcionando.

El problema parecía estar en el archivo .project donde había algunas referencias a CDT Builder y no estaban allí en el nuevo archivo .project.

+0

. La ubicación del proyecto se encuentra en project_workspace/project_folder – J4cK

2

Ninguna de las respuestas dadas aquí funcionó para mí, así que terminé simplemente instalando y usando InfiniTest en su lugar. No tiene este problema, y ​​también ejecuta las pruebas automáticamente para que pueda enfocarme en mi trabajo.

Eclipse with Infinitest showing a red "tests failed" status message and the corresponding assertion error in the "Problems" tab

+1

You rock! ¡Esto es lo único que funcionó para mí usando ADT 23+! – HughB

+0

@HughB ¿Sabes por qué el JUnit4 normal no funciona aquí? ¿Alguna solución que tienes? – devo

+0

@devo, no sé por qué ocurre este problema, pero la corrección en [esta respuesta] (http://stackoverflow.com/a/26517489/238753) funcionó para mí. – Sam

1

Si está usando Android y sus plugins asociados, a continuación, Android sólo es compatible con JUnit 3.

que resuelve el problema mediante la selección de la prueba Runner como JUnit 3.

En mi clase, JUnit 4 se agrega en la compilación path-> libraries.

Luego, para ejecutar el archivo de prueba, vaya a: Ejecutar como -> Ejecutar configuraciones, luego seleccione el archivo test.java correspondiente y seleccione Test Runner en consecuencia (ya sea JUnit 3 o 4).

+0

salvó mi día amigo :) gracias, esto funcionó para mí –

31

Lo que funcionó para mí después de intentar todo:

  1. van a ayudar a
  2. instalar nuevo software
  3. Trabaja con: Juno
  4. Los lenguajes de programación (expandirla)
  5. Instalar herramientas de desarrollo Java
  6. Reiniciar

Funciona :)

+1

¡Muchas gracias! ¡Esto funcionó para mí también! – Sam

+5

El nombre del paquete que tuve que instalar era * Eclipse Java Development Tools * en lugar de solo * Java Development Tools *. – Sam

+0

@Sam ¿Cuál será la URL de actualización? Ya estoy teniendo a Juno con ADT 23.0.2. – devo

2

Este error en Eclipse puede ser causado si también está usando los plugins kit de desarrollo de Android:

"Launching UTest' has encountered a problem 
    An internal error occurred during: "Launching UTest". 
    java.lang.NullPointerException 

puede ser causado si está cargando un proyecto Java normal a una instancia de Eclipse con complementos Android ADT instalados y habilitados. En esta situación, Eclipse busca archivos de proyecto "Android" y no encuentra ninguno. Entonces dice: "NullPointerException".

Así solucionarlo, volver a descargar Eclipse sin el ADT Plugin: https://www.eclipse.org/downloads/

A continuación, volver a importar su proyecto fresco. Y las pruebas junit se ejecutan sin problemas.

Muchas personas odian el eclipse por sus enigmáticos mensajes de error. Es como si estuviéramos en el mundo de las tarjetas perforadas de los años 50, donde no hay mensajes de error. El programa simplemente se detiene y se produce un comportamiento indefinido.

Cuestiones relacionadas