Eclipse: habilitar aserciones

96

Estoy ejecutando Eclipse Galileo. ¿Cómo habilito las afirmaciones en Eclipse?

Según lo sugerido por otros sitios, he intentado añadir los argumentos: -ea. También intenté cambiar el nivel de cumplimiento del compilador a 1.4. Ninguna de esas sugerencias funcionó.

Bueno en realidad
fuente

Respuestas:

163
  1. Vaya al menú Run y luego al elemento del menú Run Configurations .

ingrese la descripción de la imagen aquí

  1. En el panel izquierdo , vaya a Java Applicationy luego vaya a Assertions.

  2. En el panel derecho , elija la pestaña Arguments .

  3. Debajo del campo para VM arguments, escriba -eapara habilitar las afirmaciones.

ingrese la descripción de la imagen aquí

  1. Haga clic en el botónApply y luego .Run

Para configurarlo globalmente como predeterminado para todo :

  1. Vaya al menú Window(si está en Windows) o vaya al menú Eclipse(si está en Mac). Para Linux podría ser algo similar.

  2. Ir a Preferences.

  3. Elija Java, y luego Installed JREsdesde el panel izquierdo .

  4. Seleccione su JRE y luego haga clic en el Edit...botón en el panel derecho .

  5. En el Default VM argumentscampo, agregue -ea.

sreeprasad
fuente
Esto no funciona para Android, aparentemente necesitas JUnit Assert.
Noumenon
42
Para configurarlo globalmente como predeterminado para todo, vaya a Ventana -> Preferencias -> Java / JRE instalados. Seleccione el JRE y haga clic en "Editar ...". En el campo "Argumentos de VM predeterminados", agregue "-ea".
Silveri
@nbro No tengo un Assertionsartículo debajo Java Application. ¿Quizás te refieres a la configuración de ejecución actual?
John McClane
@JohnMcClane Es posible que diferentes versiones de Eclipse tengan diferentes paneles, botones y menús. Si agregué específicamente esa instrucción (pero fue hace mucho tiempo), es probable que lo probé en mi propia versión (como también puede notar en las imágenes, estoy usando una Mac, por lo que es posible que las versiones de Eclipse son ligeramente diferentes en otros sistemas).
nbro
1
@JohnMcClane Sí, creo que tienes razón. Es posible que esos fueran nombres de proyectos. En lugar de ir a "Afirmaciones", debería ir al nombre de su proyecto (supongo).
nbro
36

Si desea resolver este problema globalmente para todas las pruebas de JUnit, vaya a Preferences > Java > JUnity en la parte superior haga clic en la casilla de verificación para " Agregar 'ea' a los argumentos de la VM al crear una nueva configuración de lanzamiento de JUnit ". Ahora Eclipse no lo molestará por cada nueva prueba que realice quiero correr. Para las pruebas existentes, debe eliminar sus configuraciones de ejecución en Run Configuration > JUnit.

JnBrymn
fuente
5
¿Hay alguna forma de agregar -ea a todas las configuraciones de lanzamiento de JUnit existentes ?
mxro
Para ser añadido -ea a las pruebas existentes se tiene que quitar configuraciones de ejecución en la configuración Ejecutar> JUnit
Honza
11

Para hacer esto globalmente para todas las ejecuciones de Java, edite las propiedades de los JRE instalados.

Por ejemplo: Windows -> Preferencias -> resalte el JRE predeterminado -> haga clic en Editar ... -> En el cuadro de entrada de argumentos de VM predeterminados, ingrese -ea -> haga clic en el botón finalizar.

Esto funcionó en Eclipse Kepler SR2.

Josef.B
fuente
5

En proyectos de maven , puede ejecutar el método principal con classpath de magia automática mediante:

bash> export MAVEN_OPTS="-ea" && mvn exec:java -Dexec.mainClass="com.your.class.with.main"
cmd> set MAVEN_OPTS="-ea" && mvn exec:java -Dexec.mainClass="com.your.class.with.main"

En linux / eclipse puede agregar una ventana de terminal con bash para un uso más conveniente.

Waldemar Wosiński
fuente
4

¿Quiere habilitar aserciones para una aplicación que está ejecutando desde Eclipse? Por lo general, solo agrego -ea a los parámetros de la línea de comandos en el perfil "Ejecutar como".

andersoj
fuente
1
Sí, así es como suelo hacerlo también cuando estoy ejecutando desde la línea de comandos, por lo que pensé que agregar esos argumentos de VM en las preferencias funcionaría. Gracias por el aporte. En confirma que no estaba loco por pensar que debería hacerlo ..
bueno, en realidad