Resumenrecursos no se han encontrado contenidos de casos de prueba JUnit
Mis pruebas JUnit no están encontrando los archivos que se requieren durante la ejecución. Estoy usando Maven para la administración y compilación de dependencias.
Detalles
Todos los archivos requeridos por los casos de prueba se encuentran en: src/test/resources
.
Por ejemplo, src/test/resources/resourceFile.txt
.
acceder a un recurso que utilizo el siguiente código:
URL url = getClass().getResource("/resourceFile.txt").getFile();
File file = new File(url);
Pero luego vuelve file.exists()
false
. Y el error que consigo es:
Tests in error:
myJUnitTestCase(tests.MyJUnitTestClass): /home/me/workspace/Project%20Name/target/test-classes/resourceFile.txt (No such file or directory)
nota, el siguiente da el mismo error (nótese la retirada /
prefijo):
URL url = getClass().getClassLoader().getResource("resourceFile.txt").getFile();
File file = new File(url);
Parece como si los archivos de src/test/resources
no están siendo copiados en target/test-classes
.
¿Alguna idea?
Las siguientes preguntas no ayudaron
Why Can't I access src/test/resources in Junit test run with Maven?
Loading Properties File In JUnit @BeforeClass
How to deal with the test data in Junit?
versiones de software
Ubun ma 12,04
Apache Maven 2.2.1
Java 1.7.0
Eclipse (Java EE IDE para desarrolladores web) Servicio Indigo Release 2
(truncada) Maven POM
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.groupId</groupId>
<artifactId>artifactId</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>name</name>
<build>
<finalName>name</finalName>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
'Parece como si los archivos de src/test/resources no se están copiando en target/test-classes' ¿Realmente lo verificaste? – ftr
No, soy un idiota ... lo siento. Acabo de verificar y puedo confirmar que en realidad están copiados allí. Tal vez se deba al "% 20" en la ruta? –
¿Está tratando de abrir una secuencia de entrada desde ese archivo? Si es así, puede usar lo siguiente directamente para hacer esto (en lugar de usar el URL): .class.getClassLoader(). GetResourceAsStream (fileName) –