回答
資源旨在使用Java提供的特殊getResource
樣式方法進行訪問。鑑於你的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對象,所以你可以做你想做的事情任何東西,喜歡看書內容並將其用於測試數據。
還有其他方法來獲取資源(例如作爲流)。有關更多信息,請參閱Java Docs: Class上的getResource
方法。
sbt將文件從src/test/resources
複製到target/scala-[scalaVersion]/test-classes
。
您可以在您的測試訪問的資源如下:
Source.fromURL(getClass.getResource("/testData.txt"))
,它假定testData.txt
是直接在文件夾src/test/resources
下。添加任何子目錄,否則。
要知道你在哪裏測試期間在文件系統中,你可以做這樣的事情在一個虛擬的測試:
import scala.collection.JavaConversions._
for(file <- new File(".").listFiles){
println(file.getAbsolutePath)
}
然後,當你知道你的路,你的測試,你可以使用它作爲:
new File("./src/test/resources/yourfile.xml")
'src/test/resources'下的文件在測試的CLASSPATH中,因此測試可以在代碼沒有意識到構建的情況下訪問它目錄結構。 – 2014-07-27 11:02:22
如果需要枚舉資源(即代碼沒有固定名稱,但會使用放置在其下的任何文件),這可能會很有用。 – akauppi 2015-01-23 12:53:45
@akauppi這可以通過http://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/core/io/support/PathMatchingResourcePatternResolver.html完成 – dk14 2016-08-13 18:50:53
另一種選擇(尤其是如果你需要訪問的資源爲File
);是獲得它通過路徑:從谷歌番石榴如已在Scala get file path of file in resources folder
而在情況下getClass.getResource
不工作(不知道也不關心何時或到底爲什麼)所指出的
val path = getClass.getResource("/testData.txt").getPath
val file = new File(path)
,com.google.common.io.Resources.getResource
通常是
testCompile "com.google.guava:guava:18.0"
- 1. 訪問單元測試資源
- 2. iOS模擬器訪問測試資源
- 3. 訪問Android UI Automator測試的資源
- 4. 訪問儀器測試資源
- 5. 如何訪問Pax Exam考試測試套件中的資源?
- 6. 如何讓我的JUnit測試訪問來自main的資源?
- 7. 如何從JUnit測試中訪問webapp下的靜態資源?
- 8. 如何訪問android測試項目中的原始資源?
- 9. 如何訪問Play 2.1中的測試資源?
- 10. 如何在Perl中測試資源(緩存)的併發訪問?
- 11. 如何在應用程序測試期間訪問資源
- 12. Rails + Cucumber:如何測試對受限資源的訪問?
- 13. 如何訪問資源,Android的單元測試?
- 14. 如何訪問主文件和測試文件中的資源
- 15. 如何測試after_sign_in_path_for(資源)?
- 16. Angular:如何訪問資源?
- 17. Qt如何訪問資源
- 18. 訪問資源
- 19. REST資源測試
- 20. C#測試資源
- 21. Javascript測試資源
- 22. maven3主要資源VS測試資源
- 23. XamlParseException嘗試訪問資源時
- 24. 如何獲取測試資源文件?
- 25. 如何測試嵌套資源
- 26. 如何使maven使用測試資源
- 27. 如何測試冗餘資源請求?
- 28. 如何測試資源文件?
- 29. 在測試方法中訪問資源文件
- 30. 在Android Instrumentation中訪問R.raw資源jUnit測試
我不得不在指令中添加一個'getClassLoader'。結果是'Source.fromURL(getClass.getClassLoader.getResource(「simulation.json」))' – Moebius 2017-01-12 17:30:50