আমি একটি ফাইল আছে 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"))