요약자원은
내 JUnit 테스트들이 실행 중에 필요한 파일을 찾을 수 없습니다 JUnit 테스트 케이스에서 찾을 수없는 파일. 종속성 관리 및 컴파일을 위해 Maven을 사용하고 있습니다. src/test/resources
: 테스트 케이스에 필요한
세부
모든 파일에 있습니다. 예 : src/test/resources/resourceFile.txt
.
URL url = getClass().getResource("/resourceFile.txt").getFile();
File file = new File(url);
그러나 file.exists()
반환 false
:
src/test/resources
에서 파일에 복사되지 않아요 것처럼
URL url = getClass().getClassLoader().getResource("resourceFile.txt").getFile();
File file = new File(url);
것 같다 :
Tests in error:
myJUnitTestCase(tests.MyJUnitTestClass): /home/me/workspace/Project%20Name/target/test-classes/resourceFile.txt (No such file or directory)
참고, 다음과 같은 오류 (제거 /
접두사 통지를) 제공 target/test-classes
.
아이디어가 있으십니까?
다음 질문
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?
소프트웨어 버전
Ubun 도움이되지 않았다 TU 12.04
아파치 메이븐 2.2.1
자바 1.7.0
이클립스 (웹 개발자를위한 자바 EE IDE) 인디고 서비스 릴리스 2
(절단) 메이븐 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>
'src/test/resources의 파일이 target/test-classes'에 복사되지 않는 것 같습니다. 실제로 확인 했습니까? – ftr
아니, 나는 바보 야 ... 미안. 방금 확인한 결과 실제로 복사 된 것을 확인할 수 있습니다. 어쩌면 경로의 "% 20"때문일 수 있습니까? –
해당 파일에서 입력 스트림을 열려고합니까? 그렇다면 URL을 사용하는 대신 다음을 직접 수행 할 수 있습니다. .class.getClassLoader(). getResourceAsStream (fileName) –