2009-10-12 23 views
14

Estoy escribiendo una biblioteca de Java con una gran cantidad de código jni. Prácticamente todos los casos de prueba necesitan cargar mi jni dll, y tengo muchos casos de prueba. Para ejecutar los casos de prueba fuera del iniciador Junit de Eclipse, tengo que crear una configuración de ejecución/depuración y editar los argumentos de VM y las variables de entorno.Valores predeterminados para las configuraciones de ejecución de Eclipse

Me gustaría una forma de establecer los argumentos de máquina virtual y las variables de entorno con un valor predeterminado para todo el proyecto y tener nuevas configuraciones de ejecución que incluyan las entradas predeterminadas. Por lo que puedo decir, Execution Environments puede hacer algo como esto, pero parece que necesito el PDE para que funcionen (?)

Específicamente, quiero habilitar las aserciones en mi proyecto por defecto e incluir la ruta a mi dll nativo en la variable de entorno PATH. No puedo usar la configuración "Argumentos VM predeterminados" en el panel de definición de JRE porque mi dll depende de varios otros y java.library.path no se usa para la resolución de dependencia, PATH sí lo está. ¿Hay alguna manera de hacer que Eclipse haga lo que quiero?

Respuesta

1

¿Cuánto tiempo lleva realizar todas sus pruebas para el proyecto?

Si la respuesta es Not long, cree un lanzador de JUnit en todo el proyecto. Si ocasionalmente necesitara ejecutar en un solo caso de prueba (para depurar o algo así), puede copiar todas sus configuraciones desde el iniciador de sesión del proyecto. Creo que incluso puedes clonar tu iniciador de proyectos para ejecutar un caso de prueba específico.

  1. Run-> Ejecutar configuraciones ...
  2. Crear nuevo lanzador de JUnit.
  3. En la pestaña 'Test' seleccione Run all tests in selected {...}
  4. opciones de JVM, Connfigure ruta de clases, medio ambiente, etc. para este lanzador
  5. opcional, pero muy recomendable. En Common pestaña ->Save as ->Shared file, y el registro lanzador con su proyecto

Una cosa más me gustaría hacer es definir una propiedad del sistema en el lanzador argumentos de VM, la verificación de esta propiedad en @Before función y lanzar excepción si la propiedad no está configurada. De esta manera sabrá que su prueba falla porque no está utilizando el iniciador derecho.

+0

Duplicar y luego editar un caso de prueba es menos trabajo que crear uno desde cero. No es exactamente lo que esperaba, pero basado en lo que se ha discutido hasta ahora, es la respuesta más factible. – gibbss

+0

Débil (en la parte de Eclipse). Esto significa que no puede simplemente hacer clic con el botón derecho -> ejecutar como prueba junit. Hago esto regularmente y también tengo docenas de configuraciones de ejecución. –

+0

eso es tan gracioso que estaba a punto de continuar y comenzar mi comentario con "¡débil!" también. voy a ver si agrego esta característica que me falta. –

0

Si entiendo su pregunta correctamente, creo que Alexander está a la idea de clonar el iniciador del proyecto. Eclipse le permite duplicar configuraciones de inicio con un solo clic: simplemente configure una configuración con los parámetros que necesita y haga clic en el botón en la parte superior izquierda para duplicarla cada vez que cree una nueva.

10

Entonces, esto es lo que hice.

En primer lugar, mi problema específico era que tenía muchas configuraciones de ejecución, creaba nuevas sobre la marcha, y necesitaba ciertas propiedades del sistema establecidas para las pruebas unitarias. Establecerlos en la pestaña 'args' de las configuraciones de ejecución no era deseable para mi flujo de trabajo. Además, quería los mismos argumentos de línea de comandos para todas mis pruebas. Tampoco ejecuto mi aplicación desde dentro de eclipse. Es un entorno de desarrollo solamente.

Así que mi solución fue agregarlo a la línea de comandos de mi JRE. Preferencias -> Java -> JRE instalados. Al hacer clic en Editar, obtendrá una ventana donde puede especificar args de VM predeterminados. Acabo de establecer las propiedades del sistema que necesito para probar allí.

Espero que esto ayude.

Cuestiones relacionadas