2012-06-17 22 views
7

Al ejecutar mvn test, maven no ejecutará todas las clases de prueba. Cuando explícitamente proporciono una clase agregando -Dest = PropertyTests se ejecutarán las pruebas.Maven no ejecutará las pruebas

Aquí es mi pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>example</artifactId> 
    <version>1.0</version> 

    <properties> 
     <java-version>1.6</java-version> 
     <org.slf4j-version>1.6.6</org.slf4j-version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 

     <!-- Logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- Test --> 
     <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-compiler-plugin</artifactId> 
       <configuration> 
        <source>${java-version}</source> 
        <target>${java-version}</target> 
       </configuration> 
      </plugin> 

     </plugins> 

    </build> 

</project> 

Por qué experta no se ejecutará las pruebas de forma automática? ¿Me perdí algo?

ACTUALIZACIÓN

Ejemplo de prueba (clase está en src/test/java/com/example/PropertyTests.java):

public final class PropertyTests 
{ 
    @Test 
    public void testGetters() 
    { 
     Property property = new Property("foo", "bar"); 

     Assert.assertEquals("foo", property.getKey()); 
     Assert.assertEquals("bar", property.getValue()); 
    } 
} 

salida Maven en mvn test:

$ mvn test 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Unnamed - com.example:example:jar:1.0 
[INFO] task-segment: [test] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [resources:resources {execution: default-resources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Compiling 13 source files to /home/danny/workspace/example/target/classes 
[INFO] [resources:testResources {execution: default-testResources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] Compiling 3 source files to /home/danny/workspace/example/target/test-classes 
[INFO] [surefire:test {execution: default-test}] 
[INFO] Surefire report directory: /home/danny/workspace/example/target/surefire-reports 

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

Results : 

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

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 10 seconds 
[INFO] Finished at: Sun Jun 17 18:09:45 CEST 2012 
[INFO] Final Memory: 17M/42M 
[INFO] ------------------------------------------------------------------------ 

Respuesta

12

Debe agregar el plugin maven surefire para ejecutar las pruebas. La configuración se puede encontrar aquí: http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html

ACTUALIZACIÓN:

Aquí es una configuración que he estado usando con especificaciones/JUnit.

  <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.8.1</version> 
       <configuration> 
        <includes> 
         <include>**/*Spec.*</include> 
         <include>**/*Test.*</include> 
        </includes> 
       </configuration> 
      </plugin> 

ACTUALIZACIÓN 2: convención

El nombramiento es de prueba, por lo que cambiar a PropertyTests PropertyTest.

+0

Después de agregar el complemento surefire todavía no ejecutará las pruebas (Pruebas ejecutadas: 0). Vea la pregunta actualizada para el código. – dtrunk

+0

¿Están sus pruebas en src/test/java? ¿Cómo son tus pruebas? ¿Qué producción obtienes de maven? – Noah

+2

Creo que es posible que deba eliminar la 's' de 'PropertyTests'. – Noah

Cuestiones relacionadas