¿Por qué espacio de almacenamiento dinámico dirigido a cabo sólo cuando se ejecutan las pruebas JUnit?

StackOverflow https://stackoverflow.com/questions/681133

Pregunta

Al ejecutar las pruebas JUnit, siempre me parece funcionar en este error:

  

Eclipse OutOfMemoryError: espacio de montón

He supervisado Eclipse con jconsole y memoria de pila picos a aproximadamente 150 MB. He puesto la pila de memoria de 1 GB.

Estoy utilizando los siguientes argumentos al iniciar Eclipse:

-vm "C:\Program Files\Java\jre1.5.0_08\bin\javaw.exe" -vmargs -Xmx1024M
-XX:MaxPermSize=128M -Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

¿Alguien sabe qué puede estar causando este problema? Esto sólo ocurre cuando se ejecutan las pruebas JUnit.

¿Fue útil?

Solución

pruebas JUnit se ejecutan en una máquina virtual diferente como el IDE Eclipse. Por lo tanto, es que VM que está fuera de la memoria y no el Eclipse.
Puede cambiar la configuración de la máquina virtual de prueba en las configuraciones de ejecución de la prueba.
Vas a las configuraciones de ejecución y luego bajo argumentos, se pueden establecer los argumentos de VM.

Otros consejos

Además de la respuesta @Thijs Wouters, para solucionar este problema en Eclipse hice lo siguiente:

  • añadida una nueva configuración Puede usarse en JUnit (Ejecutar> Ejecutar configuración> JUnit> Nuevo)
  • Dentro del conjunto de pestañas argumentos VM argumentos para "-Xms64m -Xmx256m" o superior si es necesario

Es probable que tenga una pérdida de memoria en sus pruebas JUnit. Gotcha común es la siguiente: Junit creará una nueva instancia de una clase TestCase para todos los métodos de prueba en ella Y todas las variables de instancia se mantendrá alrededor hasta que termina JUnit. Eso significa que:. Si tiene método () una clase TestCase con 50 métodos de prueba y una variable de instancia que se inicializa con un gráfico de objetos de 1 MB en su configuración, entonces esa clase TestCase requerirá espacio 50MB montón

Editar: el problema descrito anteriormente sólo existe en las versiones anteriores de JUnit, creo que se fijó en JUnit 4

.

He acaba de lanzar un plugin para Eclipse que marcará automáticamente el tamaño del montón de lanzadores JUnit para usted. Usted puede obtener de http://code.google.com/p/junitlaunchfixer/ funciona con Eclipse Europa, Ganímedes y Galileo.

He encontrado la solución a mi problema - puede ayudar a los demás;) Cuando estaba aumentando el tamaño de la pila que estaba aumentando el tamaño de la pila de aplicación eclipse, no de mi programa (que ejecuta a través de Eclipse) Lo que tenía que hacer es modificar los comandos de ejecución antes de ejecutar mi programa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top