2012-01-24 8 views
20

que necesitaba para mover algunos src/test/java a src/main/java de acuerdo con esta Recomendación de la documentación experto-jar-plugin =>http://maven.apache.org/plugins/maven-jar-plugin/usage.htmléxito seguro no se inicia la prueba en src/main/java

I lo hice porque, utilicé clases de pruebas (ayudantes) en otros proyectos en el alcance de la prueba.

lo tanto, crear mi proyecto de la prueba, se trasladaron en las clases de prueba, y configurado segura para especificar las clases de prueba directorio =>

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <testSourceDirectory>${basedir}\src\main\java\</testSourceDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Pero cuando lancé mvn test, 0 pruebas se ejecuta =>

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

El problema es el mismo que este =>Maven does not find JUnit tests to run pero la solución (configurar el plugin maven surefire) no funciona para mí.

+0

¿Estás tratando de ejecutar las pruebas de integración? Además, ¿por qué defines el testSourceDirectory? ¿Y por qué estás usando barras diagonales? – khmarbaise

+0

Como mencionó @khmarbaise, tal vez proviene de las barras diagonales inversas. –

+0

Intenté $ {basedir}/src/main/java/o src/main/java/pero es lo mismo Pruebas ejecutadas: 0, Fallas: 0, Errores: 0, omitido: 0 – Antoine

Respuesta

27

La buena configuración para el plugin de Maven es segura =>

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory> 
        <testClassesDirectory>${project.build.directory}/classes/</testClassesDirectory> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

Results : 

Tests run: 20, Failures: 0, Errors: 0, Skipped: 0 
+3

Aunque esto funcionará, de ninguna manera es una buena configuración, ya que no sigue la manera de hacer las cosas de Maven. Las fuentes deben estar en 'src/main/java'. Sus clases compiladas estarán en 'target/classes'. Las fuentes de prueba deben estar en 'src/test/java'. Sus clases compiladas estarán en 'target/test-classes'. Esta es la convención correcta y de esta manera Surefire funcionará de la caja. Poner tus pruebas en el mismo directorio que las fuentes de tu módulo simplemente no es correcto. – carlspring

+5

No puse clases de pruebas en el mismo directorio, creé un proyecto anoter con el sufijo "-tests". Esa es la recomendación de maven-jar-plugin help => http://maven.apache.org/plugins/maven-jar-plugin/usage.html => "Cómo crear un jar que contenga clases de prueba" => "El preferido manera " – Antoine

+0

Gracias - esto me ayudó mucho.Estoy desarrollando un conjunto de koans que son (inicialmente) pruebas de unidad fallidas pero están en src/main (los koans ya terminados están en el directorio src/test), así que necesitaba poder invocar el plugin JUnit surefire en el código en src/main. Muchas gracias por esta ayuda. – quux00

1

Desde las clases de prueba ahora se han colocado en src/main/java, es probable que se están recopilados durante la fase de compilar a target/classes.

Por lo tanto, aunque surefire está configurado para indicar que la ubicación de la fuente de prueba es src/main/java, aún buscaría clases de prueba en target/test-classes, ya que esta es la ubicación predeterminada para las clases de prueba.

Puede intentar especificar el parámetro testClassesDirectory adecuadamente y ver si funciona.

Además, creo que es posible que haya malinterpretado la recomendación en la documentación del plugin de maven jar. No creo que sugieran mover fuentes de prueba al src/main/java.

+0

Bien, lo intentaré. Pero la recomendación del plugin maven jar se mantiene clara: "Mueva los archivos de fuentes de src/test/java que desea compartir desde el proyecto original al src/main/java de este proyecto. El mismo tipo de movimiento cuenta para los recursos también por supuesto." – Antoine

+0

@Antoine. Estás en lo correcto. Estaba familiarizado con 'la manera fácil', pero nunca me di cuenta 'de la manera preferida'. Actualizaré la respuesta también. – Raghuram

Cuestiones relacionadas