मेरे पास src/test/resources/
में एक फ़ाइल data.xml
है।परीक्षण संसाधनों का उपयोग कैसे करें?
src/test/scala/
में मेरे परीक्षण data.scala
में मैं उस फ़ाइल को FileReader
में कैसे पढ़ सकता हूं?
मेरे पास src/test/resources/
में एक फ़ाइल data.xml
है।परीक्षण संसाधनों का उपयोग कैसे करें?
src/test/scala/
में मेरे परीक्षण data.scala
में मैं उस फ़ाइल को FileReader
में कैसे पढ़ सकता हूं?
संसाधनों को जावा 0 प्रदान की जाने वाली विशेष 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
अब सिर्फ एक सामान्य स्काला आईओ वस्तु है, तो आप कुछ भी आप इसके साथ चाहते हैं कर सकते हैं
, पढ़ने की तरह सामग्री और परीक्षण डेटा के लिए इसका उपयोग कर रहे हैं।
संसाधन प्राप्त करने के लिए अन्य विधियां भी हैं (उदाहरण के लिए स्ट्रीम के रूप में)। अधिक जानकारी के लिए Java Docs: Class पर getResource
विधियों को देखें।
एसबीटी प्रतियों 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/resource' के अंतर्गत की गई फ़ाइलें परीक्षण के क्लासस्पैट में हैं, इसलिए परीक्षण के निर्माण के बारे में जागरूक होने के बिना परीक्षण इसे एक्सेस कर सकते हैं निर्देशिका संरचना। –
हालांकि यह उपयोगी हो सकता है, अगर किसी को संसाधनों की गणना करने की आवश्यकता है (यानी कोड में उनके नाम तय नहीं हैं, लेकिन वहां मौजूद किसी भी फाइल का उपयोग करेंगे)। – akauppi
@akauppi यह http://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/core/io/support/PathMatchingResourcePatternResolver.html के साथ किया जा सकता है – dk14
एक और विकल्प (विशेष रूप से यदि आपको संसाधन को File
के रूप में एक्सेस करने की आवश्यकता है); गूगल अमरूद से,
val path = getClass.getResource("/testData.txt").getPath
val file = new File(path)
में और मामलों में जहां getClass.getResource
काम नहीं करता है (पता है और न ही परवाह जब या क्यों वास्तव में नहीं है) में बताया गया है com.google.common.io.Resources.getResource
: यह के माध्यम से पथ है प्राप्त करने के लिए है आमतौर पर
testCompile "com.google.guava:guava:18.0"
मुझे निर्देश में 'getClassLoader' जोड़ना पड़ा। परिणाम 'Source.fromURL था (getClass.getClassLoader.getResource (" simulation.json "))' – Moebius