[SCALA] 어떻게 스칼라에서 테스트 리소스에 액세스하려면?
SCALA어떻게 스칼라에서 테스트 리소스에 액세스하려면?
내가 SRC / 테스트 / 자원 파일 인 data.xml이 /.
어떻게 SRC / 테스트 / 스칼라 / 내 테스트 data.scala에 신규 FileReader에 해당 파일을 읽을 수 있습니까?
해결법
-
==============================
1.자원은 자바가 제공하는 특별한의 getResource 스타일의 방법을 사용하여 액세스 할 수 있도록 의미한다. 에서 인 data.xml 존재의 당신의 예를 감안할 때 $ SBT_PROJECT_HOME / SRC / 테스트 / 자원 /, 당신이 그렇게 같은 테스트에 액세스 할 수 있습니다 :
자원은 자바가 제공하는 특별한의 getResource 스타일의 방법을 사용하여 액세스 할 수 있도록 의미한다. 에서 인 data.xml 존재의 당신의 예를 감안할 때 $ SBT_PROJECT_HOME / SRC / 테스트 / 자원 /, 당신이 그렇게 같은 테스트에 액세스 할 수 있습니다 :
import scala.io.Source // The string argument given to getResource is a path relative to // the resources directory. val source = Source.fromURL(getClass.getResource("/data.xml"))
당신이 내용을 읽고 테스트 데이터를 사용하는 것과 같이, 당신이 그것으로 원하는 모든 것을 할 수 물론 소스는 이제 단지 일반 스칼라 IO 객체입니다.
(스트림으로, 예를 들어)뿐만 아니라 자원을 얻을 수있는 다른 방법이 있습니다. 클래스 : 자바 문서에의 getResource 방법에 대한 자세한 내용을 찾습니다.
-
==============================
2.또 다른 대안 (당신이 파일로 액세스 리소스를 필요 특히); 를 통해 그것의 경로를 얻는 것입니다 :
또 다른 대안 (당신이 파일로 액세스 리소스를 필요 특히); 를 통해 그것의 경로를 얻는 것입니다 :
val path = getClass.getResource("/testData.txt").getPath val file = new File(path)
같은 자원 폴더에있는 파일의 파일 경로를 얻을 스칼라에서 지적되었다
-
==============================
3.타겟 / scala- [scalaVersion] / 테스트 클래스 SRC / 테스트 / 자원으로부터 SBT 복사 파일.
타겟 / scala- [scalaVersion] / 테스트 클래스 SRC / 테스트 / 자원으로부터 SBT 복사 파일.
다음과 같이 당신의 검사 결과의 리소스에 액세스 할 수 있습니다 :
Source.fromURL(getClass.getResource("/testData.txt"))
그것은 testData.txt이 폴더 SRC / 테스트 / 자원의 바로 아래라고 가정 않습니다. 그렇지 않으면, 하위 디렉토리를 추가합니다.
-
==============================
4.그리고 getClass.getResource 일을하지 않는 경우에 (모르는 나 때 또는 왜 정확하게 신경), 구글 구아바에서 com.google.common.io.Resources.getResource 보통 않습니다
그리고 getClass.getResource 일을하지 않는 경우에 (모르는 나 때 또는 왜 정확하게 신경), 구글 구아바에서 com.google.common.io.Resources.getResource 보통 않습니다
testCompile "com.google.guava:guava:18.0"
-
==============================
5.당신이 테스트 중에 파일 시스템에있는 위치를 알고, 당신은 더미 테스트 같은 것을 할 수 있습니다 :
당신이 테스트 중에 파일 시스템에있는 위치를 알고, 당신은 더미 테스트 같은 것을 할 수 있습니다 :
import scala.collection.JavaConversions._ for(file <- new File(".").listFiles ){ println(file.getAbsolutePath) }
그런 다음, 당신이 당신의 경로를 알고있을 때, 테스트에 당신은 그것을로 사용할 수 있습니다 :
new File("./src/test/resources/yourfile.xml")
from https://stackoverflow.com/questions/5285898/how-to-access-test-resources-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] java.lang.NoSuchMethodError : scala.Predef $ .refArrayOps (0) | 2019.11.22 |
---|---|
[SCALA] 스칼라 - 하나의 목록으로 목록의 변환 목록 : 목록 [목록 [A] 목록 [A]에 (0) | 2019.11.22 |
[SCALA] 스파크 : DB 점화 RDD 파티션 당 연결 및 수행 mapPartition (0) | 2019.11.22 |
[SCALA] 스칼라에서 병렬 파일 처리 (0) | 2019.11.22 |
[SCALA] 어떻게 기능의 요소의 공변 및 contravariant 위치를 확인하려면? (0) | 2019.11.22 |