আমি একটি ফাইল আছে data.xml
মধ্যে src/test/resources/
।
আমি একটি নতুন মধ্যে যে ফাইল কিভাবে পড়তে পারেন FileReader
আমার পরীক্ষা data.scala
মধ্যে src/test/scala/
?
আমি একটি ফাইল আছে data.xml
মধ্যে src/test/resources/
।
আমি একটি নতুন মধ্যে যে ফাইল কিভাবে পড়তে পারেন FileReader
আমার পরীক্ষা data.scala
মধ্যে src/test/scala/
?
উত্তর:
সংস্থানগুলি getResource
জাভা যে বিশেষ স্টাইলের পদ্ধতিগুলি ব্যবহার করে তা ব্যবহার করে বোঝানো হয় to আপনার দৃষ্টান্ত স্থাপন 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
এখন একটি সাধারণ স্কালাল আইও অবজেক্ট যাতে আপনি এটি দিয়ে যা কিছু করতে পারেন যেমন বিষয়বস্তু পড়া এবং পরীক্ষার ডেটার জন্য এটি ব্যবহার করা।
সংস্থানটি পাওয়ার জন্য অন্যান্য পদ্ধতি রয়েছে (উদাহরণস্বরূপ একটি স্ট্রিম হিসাবে)। আরও তথ্যের getResource
জন্য জাভা ডক্সের পদ্ধতিগুলি দেখুন : শ্রেণি ।
getClassLoader
প্রয়োজন। এটি ছাড়াই পরীক্ষায় শ্রেণীর শ্রেণিবিন্যাস ডিরেক্টরি অন্তর্ভুক্ত রয়েছে। কিছু একটা ~/lighthouse/target/scala-2.12/test-classes/com/mycompany/myapp/module1/utils/blabla/
। getClass.getClassLoader.getResource()
অংশটি ব্যবহার করে com/mycompany/myapp/module1/utils/blabla/
সরানো হয়েছে
অন্য বিকল্প (বিশেষত যদি আপনার হিসাবে একটি হিসাবে সংস্থান অ্যাক্সেস প্রয়োজন 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
। অন্যথায়, কোনও উপ-ডিরেক্টরি যুক্ত করুন।
পরীক্ষার সময় আপনি ফাইল সিস্টেমে কোথায় আছেন তা জানতে, ডামি পরীক্ষায় আপনি এরকম কিছু করতে পারেন:
import scala.collection.JavaConversions._
for(file <- new File(".").listFiles ){
println(file.getAbsolutePath)
}
তারপরে, আপনি যখন নিজের পথটি জানেন, তখন আপনার পরীক্ষায় আপনি এটি ব্যবহার করতে পারেন:
new File("./src/test/resources/yourfile.xml")
src/test/resources
পরীক্ষার CLASSPATH এ রয়েছে তাই কোডগুলি বিল্ড ডিরেক্টরি কাঠামো সম্পর্কে সচেতন না হয়েই পরীক্ষাগুলি এটিকে অ্যাক্সেস করতে পারে।
getClassLoader
নির্দেশিকায় একটি যুক্ত করতে হয়েছিল। ফলাফলটি ছিলSource.fromURL(getClass.getClassLoader.getResource("simulation.json"))