2012-09-12 19 views
7

Una pregunta novato en Maven - éxito seguro - Eclipse - JUnitMaven argumentos de éxito seguro cuando se ejecuta prueba unitaria a través del eclipse

He configurado el experto-segura-plugin en el archivo pom de mi proyecto para pasar algunos argumentos adicionales JVM como a continuación:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>${maven.surefire.plugin.version}</version> 
      <configuration> 
       <argLine>-d64 -Xms128m -Xmx4096m -XX:PermSize=512m -Duser.timezone=UTC -XX:-UseSplitVerifier</argLine> 
      </configuration> 
     </plugin> 

Cuando ejecuto un caso de prueba de este proyecto de Eclipse como Run As-> JUnit Test, aunque la ruta de clase se establece correctamente, los argumentos adicionales que se especifican en el argLine no están incluidos en la invocación. Tengo que ir y escribir manualmente los argumentos bajo el relevante Debug Configurations. No entiendo muy bien cómo JUnit es consciente de que necesita poner jarrones del alcance de la prueba en el classpath y de alguna manera significa que la herramienta JUnit en Eclipse es consciente de Maven a través de M2E? Si es así, ¿cómo podemos hacer que también lea argLine? Sé que esto suena muy específico, pero ¿cómo se manejan los demás en situaciones similares?

¡Gracias de antemano!

+0

Puede agregar argumentos de programa a una configuración de inicio de Junit ingresándolos en la pestaña 'Arguments' de la definición de lancher dentro de Eclipse. – HDave

+0

Tenga en cuenta que debe separar los argumentos de la máquina virtual y los argumentos para el programa en sí. –

+0

Veo que IntelliJ lo hace exactamente como yo esperaba. – Kilokahn

Respuesta

9

Eclipse JUnit Launcher (elija Run As -> JUnit Test) es un corredor de prueba independiente que tiene su propia construcción predefinida y ciclo de vida en ejecución y no tiene nada que ver con Maven, no recogerá su pom mágicamente y leerá en la configuración segura y utilícelos para conducir la prueba ejecutándose.

Si su proyecto se importa como un proyecto Maven existente, utilice Maven (elija Run as -> Maven test) ejecute su prueba JUnit que recogerá y utilizará la configuración infalible. Esto es exactamente lo mismo que ejecutar mvn test desde la línea de comandos, solo muestra el registro de ejecución en la consola y no podrá usar la bonita ventana verde de la interfaz de usuario JUnit &.

Espero que esto tenga sentido.

+0

si Eclipse JUnit es un corredor de prueba independiente, ¿cómo sabe los frascos que necesita poner en el classpath según el alcance de la prueba? – Kilokahn

+0

En general, es manejado por m2eclipse. Cuando importamos un proyecto maven existente, en realidad es m2eclipse el que domina la configuración del proyecto, es decir, genera el archivo de metadatos Eclipse .project & .classpath, rellena el classpath del proyecto (de causa de pom.xml) y etc. Una vez que el proyecto se importó exitosamente a IDE, m2eclpise prácticamente hizo su trabajo. Desde aquí, si lo desea, puede hacer su trabajo (codificación/depuración/prueba) sin involucrar a m2eclipse. AFAIK, no hay asociación entre m2eclipse y Eclipse JUnit Launcher. – yorkw

+1

gracias por la información! Entonces, el siguiente paso sería ver si m2eclipse también puede leer el archivo de configuración de plugin surefire argLine y de alguna manera llenar la configuración de depuración de las pruebas en ese proyecto para tener los argumentos de argLine, ¿verdad? O esto pidiendo demasiado? :) – Kilokahn

Cuestiones relacionadas