Las Junits que tengo en mi proyecto necesitan cargar archivos de propiedades desde classpath. ¿Cómo puedo especificar el directorio de esos archivos de propiedades para que Maven los establezca en el classpath antes de ejecutar las pruebas?Maven - Agregar directorio a classpath mientras se ejecutan las pruebas
Respuesta
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>
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>
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
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.
Uno tiene una sola carpeta, pero a menudo más de un entorno de prueba. – 30thh
Echa un vistazo a los perfiles de maven, amigo mío. –
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.
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 .
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.)
Esto funcionó para mí. +1 para señalar la necesidad del valor predeterminado. –
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 '
- 1. Maven: cambiar el directorio en el que las pruebas se ejecutan
- 2. Agregar un directorio a tomcat classpath
- 3. ¿Cómo se ejecutan las pruebas de meteoritos?
- 4. Las declaraciones NSLog no funcionan mientras se ejecutan las pruebas de unidad
- 5. FileNotFoundException cuando se ejecutan las pruebas de NUnit de TeamCity
- 6. Cómo agregar recursos a classpath
- 7. Cómo configurar las variables $ _SERVER [''] cuando se ejecutan las pruebas de phpunit a través de Jenkins
- 8. ¿Cómo se ejecutan las pruebas unitarias en modo STAThread?
- 9. Añadir maven-build-classpath a plugin ejecución classpath
- 10. Agregar carpeta a Eclipse classpath
- 11. Maven no ejecutará las pruebas
- 12. Agregar pruebas de unidad que se ejecutan en el dispositivo al proyecto Xcode 4 existente
- 13. Agregando classpath a jetty corriendo en maven integration-test
- 14. Agregar el directorio actual al classpath de un archivo JAR
- 15. Ant copy classpath jar a un directorio
- 16. agregue un jar a maven exec: classpath java
- 17. Cuando se ejecutan scripts Groovy usando el contenedor groovy-all, ¿cómo se especifica un classpath?
- 18. Ejecutar pruebas de las clases internas a través de Maven
- 19. Agregar ruta de acceso adicional a exec-maven-plugin
- 20. Las pruebas de Maven plugins son incompatibles con Maven 3.0.4
- 21. Recopilación de las dependencias transitivas de la dependencia basada en Maven a un classpath del proyecto no Maven
- 22. Agregar JAR a CLASSPATH en Mac OS
- 23. Pruebas de depuración que se ejecutan bajo NUnit
- 24. Maven: pruebas de integración por separado de las pruebas unitarias
- 25. ¿Cómo se ejecutan las pruebas web durante un Team Build (para TFS 2010)?
- 26. ¿Inhabilitar Django South cuando se ejecutan pruebas unitarias?
- 27. Rspec: ¿Cómo suprimir advertencias y avisos cuando se ejecutan pruebas?
- 28. ¿Cómo configuro el classpath de eclipse utilizado para las pruebas junit?
- 29. Buscar classpath maven se usa para ejecutar testng testcase
- 30. ¿Cómo agregar JSTL a Maven?
No importa funcionalmente, pero para el orden, ¿no debería generar la fase-test? -resources en lugar de generate-test-sources? – thSoft