2012-03-02 25 views
8

Después de actualizar toda mi versión de plugins Maven para un proyecto, encontré el siguiente problema: cuando ejecuto el comando básico mvn test -Dtest=SomeTest, la compilación finaliza sin ninguna prueba ejecutada. . De hecho, no puedo ejecutar ninguna prueba usando el parámetro -Dtest (por supuesto, la prueba existe, y se ejecuta cuando simplemente ejecuto mvn test).Maven surefire 2.12 no ejecuta una prueba específica usando el parámetro -Dtest

Después de algunas búsquedas, parece que el problema se debe al uso de surefire 2.12 plugin. He probado varias versiones de Maven (2.2.1/3.0.2) y JUnit (4.7.x, 4.8, 4.10 o incluso 3.8.x), pero no tienen ningún impacto en mi problema.

Entonces, ¿quizás mi proyecto tiene algunas configuraciones específicas que pueden tener un impacto en eso? De todos modos, creé un nuevo proyecto, usando mvn archetype:generate (usando el básico org.apache.maven.archetypes: maven-archetype-quickstart).

he modificado sólo 2 cosas en el pom.xml: utilizando JUnit 4,10 (pero no cambió nada, lo he intentado con otras versiones), y la definición de la versión de éxito seguro:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>foo</groupId> 
    <artifactId>bar</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.11</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

corro mvn test -Dtest=AppTest (la prueba unitaria predeterminada creada por el arquetipo):

------------------------------------------------------- T E S T S 
------------------------------------------------------- Running foo.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time 
elapsed: 0.031 sec 

Results : 

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

[INFO] 
------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] 

Ahora, modifico la pom.xml utilizar la versión 2.12 de éxito seguro y ejecutar el comando de nuevo:

------------------------------------------------------- T E S T S 

Results : 

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

[INFO] 
------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] 
------------------------------------------------------------------------ [INFO] Total time: 0.907s [INFO] Finished at: Fri Mar 02 10:37:12 CET 
2012 [INFO] Final Memory: 3M/15M [INFO] 
------------------------------------------------------------------------ [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-surefire-plugin:2.12:test 
(default-test) on project bar: No tests were executed! (Set -D 
failIfNoTests=false to ignore this error.) -> [Help 1] 

La prueba no se ejecuta este momento :(

En lo que a mí respecta, creo que es una regresión, pero eso es bastante sorprendente. De hecho, se registra un JIRA defect en la versión Surefire 2.12, y en esta descripción, logran usar el parámetro -Dtest.

¿Estoy haciendo algo mal? ¿O es una regresión real (en este caso, crearé la JIRA)?

Gracias.

Respuesta

13

Es un error en la versión 2.12 - SUREFIRE-827.

+0

nuevo enlace al problema: https://issues.apache.org/jira/browse/SUREFIRE-827 –

Cuestiones relacionadas