maven-2 - example - maven-surefire-plugin
¿Cómo recuperar las propiedades de maven dentro de una prueba JUnit? (1)
Tienes 2 opciones:
1) Pase la ruta del archivo a su prueba a través de una propiedad del sistema ( documentos )
En tu pom podrías hacer algo como:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<systemProperties>
<property>
<name>filePath</name>
<value>/path/to/the/file</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Luego en su prueba puede hacer:
System.getProperty("filePath");
2) Coloque el archivo dentro de src / test / resources bajo el mismo paquete que su clase de prueba. Luego puede acceder al archivo usando Class.getResourceAsStream (String fileName) ( docs ).
Recomiendo encarecidamente la opción 2 sobre la opción 1. Transferir cosas a sus pruebas a través de las propiedades del sistema es muy sucia. Combina tus pruebas innecesariamente con el corredor de prueba y te causará dolores de cabeza en el futuro. Cargar el archivo fuera del classpath es el camino a seguir y es por eso que maven tiene el concepto de un directorio de recursos.
Estoy escribiendo una prueba para una clase de analizador de archivos. El método de análisis recibe un nombre de archivo como parámetro y debe abrirlo para analizarlo (duh).
He escrito un archivo de prueba, que puse en el directorio de prueba / recursos dentro de mi directorio de proyecto, y me gustaría pasar este archivo para probar mi análisis. Como este proyecto está en CVS y será manipulado por otros, no puedo codificar la ruta del archivo, así que pensé en usar la propiedad maven $ {basedir} para construir el nombre del archivo en mi prueba. Algo como:
public void parseTest() {
...
sut.parse( ${basedir} + "src/test/resources/testFile" );
...
}
¿Alguien sabe cómo podría lograr esto?