2010-11-29 18 views
5

tengo 2 proyectos de Maven, uno para las fuentes: ProjSource, que contiene una clase: Clase-A .. y otro: Projtest que contiene una clase de prueba para Class- Un llamado Class-A-Test. Quiero que se ejecute mi clase de prueba cuando llamo a mvn: install en ProjSource.invocación a prueba las clases de otro proyecto Maven

¿Cuál es la forma más sencilla de realizar tal cosa? Tenga en cuenta que mi experiencia con las pruebas unitarias es muy básica. No sé cómo decirle a Maven que Class-A-Test está diseñado para probar Class-A ...

He seguido los pasos descritos utilizando el maven-jar -plugin con el Objetivo de prueba-jar here y definiendo la resultante * ** * ** * -tests.jar como una dependencia para ProjSource con:

<type>test-jar</type> 
<scope>test</scope> 

pero cuando i ejecutar un mvn: instalar, la salida dice que: "No hay pruebas para ejecutar". ¿Me he perdido algo?

¡Cualquier ayuda es altamente apreciable, y muchas gracias de antemano!

Saludos,

Respuesta

3
  1. no hacerlo de esa manera. La mejor manera de hacerlo es tener fuentes estándar bajo src/main/java y fuentes de prueba bajo src/test/java. Por defecto, las fuentes estándar se agregarán al JAR resultante, mientras que las pruebas en el directorio de origen de prueba se ejecutarán automáticamente. Este es un comportamiento bien probado, ¿por qué cambiarlo? Si quiere/necesita un jar de prueba, llame a jar: test-jar en el pom.xml de este proyecto y use el plugin buildhelper al attach the resulting artifact para desplegar. De esa manera puede mantener el diseño del proyecto estándar y aún tener un jar de prueba.

  2. si insistes en hacerlo, tendrías que hacerlo al revés. El proyecto de prueba debería tener una dependencia del proyecto principal (no puede probar lo que no sabe). Sugeriría poner simplemente el código de prueba en src/test/java en el proyecto de prueba, entonces la magia de maven puede funcionar de la manera predeterminada. Inserta texto en negrita desde arriba aquí también.

Pero la razón por la cual el ciclo de vida del experto se definió como era es que las pruebas fallidas se supone que falle la construcción. No tiene sentido construir una biblioteca que no haga lo que se supone que debe hacer.

+0

Gracias Floyd, intenté su sugerencia, pero desafortunadamente eso no funcionó .. Ahora estoy tratando de encontrar una manera de decirle a Maven que mis clases de prueba están empacadas en un archivo JAR, y buscar ese frasco cuando ejecutando la "fase de prueba". está cerca de lo que estoy buscando, pero esta etiqueta solo acepta una carpeta como fuente, no como JAR ... tenga en cuenta que estos son los requisitos de mi empresa, todas las pruebas se empaquetan en un Jar (hecho antes de comenzar a usar maven ...) –

+0

un tarro de prueba? si ese es el problema, mira mi respuesta actualizada. –

Cuestiones relacionadas