테스트 리소스에 액세스하는 방법?
에 파일 data.xml
이 src/test/resources/
있습니다.
FileReader
내 테스트 data.scala
에서 해당 파일을 새 파일로 어떻게 읽을 수 src/test/scala/
있습니까?
자원은 getResource
Java가 제공 하는 특수 스타일 메소드를 사용하여 액세스 해야합니다. 당신의 예를 감안할 data.xml
에있는 $SBT_PROJECT_HOME/src/test/resources/
, 당신이 그렇게 같은 테스트에 액세스 할 수 있습니다 :
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"))
물론 source
이제는 일반적인 스칼라 IO 객체이므로 내용을 읽고 테스트 데이터로 사용하는 등 원하는 모든 작업을 수행 할 수 있습니다.
리소스를 얻는 다른 방법 (예 : 스트림)도 있습니다. 자세한 정보 getResource
는 Java Docs : Class 의 메소드 를 참조하십시오 .
또 다른 대안 (특히으로 리소스에 액세스해야하는 경우 File
); 경로를 통해 얻는 것입니다 :
val path = getClass.getResource("/testData.txt").getPath
val file = new File(path)
스칼라 에서 지적했듯이 리소스 폴더에서 파일의 파일 경로를 가져옵니다.
sbt는에서 src/test/resources
로 파일을 복사합니다 target/scala-[scalaVersion]/test-classes
.
다음과 같이 테스트의 리소스에 액세스 할 수 있습니다.
Source.fromURL(getClass.getResource("/testData.txt"))
testData.txt
폴더 바로 아래에 있다고 가정 합니다 src/test/resources
. 그렇지 않으면 하위 디렉토리를 추가하십시오.
그리고 Google Guava에서 getClass.getResource
작동하지 않는 경우 (정확한시기 또는 이유를 정확히 알지 못하거나 걱정하지 않는 경우)com.google.common.io.Resources.getResource
testCompile "com.google.guava:guava:18.0"
테스트 중에 파일 시스템의 위치를 알기 위해 더미 테스트에서 다음과 같이 할 수 있습니다.
import scala.collection.JavaConversions._
for(file <- new File(".").listFiles ){
println(file.getAbsolutePath)
}
그런 다음 경로를 알면 테스트에서 다음과 같이 사용할 수 있습니다.
new File("./src/test/resources/yourfile.xml")
참고 URL : https://stackoverflow.com/questions/5285898/how-to-access-test-resources
'development' 카테고리의 다른 글
Windows cmd 스크립트에서 여러 명령 실행 (0) | 2020.06.28 |
---|---|
원격 SSH 세션에서 로컬 클립 보드로 데이터를 보내는 방법 (0) | 2020.06.28 |
개인 유형에서 자동을 사용할 수있는 이유는 무엇입니까? (0) | 2020.06.28 |
도커 오류가 도커 컨테이너를 삭제할 수 없습니다. 충돌 : 저장소 참조를 제거 할 수 없습니다 (0) | 2020.06.28 |
"Visual Studio에서 메타 데이터 파일 '… \ Release \ project.dll'을 찾을 수 없습니다"오류 (0) | 2020.06.28 |