2009-08-24 25 views

Respuesta

30

Puede usar el build-helper-maven-plugin para especificar directorios adicionales de recursos de prueba de la siguiente manera. Utilizando la configuración más adelante, los contenidos del directorio de ensayo recursos se copiarán en el directorio de destino/prueba de clases durante los generar los Ensayos fuentes fase:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.12</version> 
    <executions> 
    <execution> 
     <id>add-test-resource</id> 
     <phase>generate-test-sources</phase> 
     <goals> 
     <goal>add-test-resource</goal> 
     </goals> 
     <configuration> 
     <resources> 
      <resource> 
      <directory>path/to/additional/test/resources</directory> 
      <excludes> 
       <exclude>**/folder-to-exclude/**</exclude> 
      </excludes> 
      </resource> 
     </resources> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+4

No importa funcionalmente, pero para el orden, ¿no debería generar la fase-test? -resources en lugar de generate-test-sources? – thSoft

23

Si lo que desea es poner su propiedad archivos en algún lugar en el disco y no quieren copiar los archivos de propiedades para apuntar/test-clases durante la construcción, puede hacerlo de esta manera

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <additionalClasspathElements> 
     <additionalClasspathElement>/add/this/to/path</additionalClasspathElement> 
    </additionalClasspathElements> 
    </configuration> 
</plugin> 
+1

Desafortunadamente, m2e no detecta la configuración de Surefire cuando ejecuta pruebas desde Eclipse. Es una lástima porque es un poco más simple que el objetivo add-test-resource de build-helper-maven-plugin. – thSoft

7

por qué no utilizar test/resources y colocar sus propiedades en la ruta de clase de ese punto. Solo estarán allí para la fase de prueba.

+1

Uno tiene una sola carpeta, pero a menudo más de un entorno de prueba. – 30thh

+0

Echa un vistazo a los perfiles de maven, amigo mío. –

4

Si tiene un entorno de recursos múltiples, puede usar el perfil de administrador y poner sus diversos recursos de acuerdo con el perfil que está probando.

test/resources/uat 
test/resources/prod 
test/resources/dev 

Pero usualy si necesita que usted está haciendo pruebas de integración, entonces no necesita la acumulación de ayudante-maven-plugin.

1

El maven-resources-plugin tiene un objetivo copy-resources que le permitirá copiar recursos. Por ejemplo:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
     <execution> 
     <id>additional-resources</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>copy-resources</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${project.build.testOutputDirectory}</outputDirectory> 
      <resources> 
      <resource> 
       <directory>${project.basedir}/conf</directory> 
      </resource> 
      </resources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

Esto copia el contenido de la carpeta conf en la base de su proyecto a la carpeta target/test-classes (a menos que haya modificado project.build.testOutputDirectory) que se añadirá a la ruta de clase durante las pruebas unitarias .

23

También puede agregar nuevas carpetas de recursos de prueba.

<build> 
    <testResources> 
     <testResource> 
      <directory>${project.basedir}/src/test/resources</directory> 
     </testResource> 
     <testResource> 
      <directory>${project.basedir}/src/test/something_else</directory> 
     </testResource> 
    </testResources> 
</build> 

El primer camino, src/test/resources, es el valor predeterminado. Suponiendo que aún desea que se use la ruta predeterminada, asegúrese de que esté incluida. (La etiqueta testResources sobrescribe sus valores predeterminados, por lo que si no incluye explícitamente la ruta predeterminada, dejará de usarse.)

+0

Esto funcionó para mí. +1 para señalar la necesidad del valor predeterminado. –

+2

Eso es exactamente lo que estaba buscando, ¡gracias! Mucho más simple que la solución aceptada 'build-helper-maven-plugin'. Para cualquier otra persona que busque una buena forma de hacerlo, la construcción ' ...' también se puede agregar a sus perfiles de maven, p. en caso de que desee especificar diferentes recursos para diferentes entornos (local/dev/test/prod). –

Cuestiones relacionadas