RSpec টেস্ট রান করার সময় টেস্ট রিপোর্ট প্রদর্শনের বিভিন্ন পদ্ধতি সরবরাহ করে। এটি ডেভেলপারদের টেস্টের ফলাফল বিশ্লেষণ করতে সহায়ক। RSpec-এ বিভিন্ন ধরনের reporting options রয়েছে, যা আপনাকে আরও বিস্তারিত বা সংক্ষিপ্ত আউটপুট দেখতে সাহায্য করতে পারে। এই রিপোর্টিং অপশনগুলি আপনার টেস্ট আউটপুট কাস্টমাইজ করার সুযোগ দেয়, যেমন কনসোল আউটপুট, ফাইল আউটপুট, টেস্ট কভারেজ রিপোর্ট, এবং আরও অনেক কিছু।
১. Default Output (ডিফল্ট আউটপুট)
যখন আপনি RSpec চালান, তখন এটি ডিফল্টভাবে কিছু সাধারণ আউটপুট প্রদান করে। এটি সাধারণত progress বা documentation স্টাইলে থাকে। এর মধ্যে টেস্টের স্ট্যাটাস যেমন . (পাস), F (ফেল), এবং E (এরর) দেখানো হয়।
rspecএই কমান্ডটি ডিফল্ট রেপোর্টিং আউটপুট হিসেবে একটি progress বার্তা ব্যবহার করবে যা টেস্টের অগ্রগতি দেখায়।
আউটপুট উদাহরণ:
..F..
Failures:
1) Calculator should add two numbers correctly
Failure/Error: expect(calculator.add(1, 2)).to eq(4)
expected: 4
got: 3২. Documentation Format (ডকুমেন্টেশন ফরম্যাট)
ডকুমেন্টেশন ফরম্যাট একটি স্পষ্ট এবং পাঠযোগ্য আউটপুট প্রদান করে যা টেস্টের নাম এবং তার স্ট্যাটাস দেখায়। এটি সাধারণত describe এবং it ব্লকের নাম সহ একটি হায়ারার্কিক্যাল আউটপুট প্রদান করে, যা রুবি টেস্টের প্রত্যাশিত আচরণ বুঝতে সাহায্য করে।
কমান্ড:
rspec --format documentationআউটপুট উদাহরণ:
Calculator
should add two numbers correctly
should subtract two numbers correctlyএই ফরম্যাটে, আপনি দেখতে পাবেন কিভাবে প্রতিটি টেস্ট কেসের নাম এবং তার ফলাফল স্পষ্টভাবে উপস্থাপিত হয়েছে।
৩. JUnit Format (JUnit ফরম্যাট)
JUnit ফরম্যাটটি একটি XML ফরম্যাট আউটপুট প্রদান করে যা CI/CD টুলস এবং অন্যান্য রিপোর্টিং সিস্টেমের সাথে ইন্টিগ্রেট করতে সহায়ক। এটি মূলত টেস্ট রিপোর্টগুলিকে একটি স্ট্যান্ডার্ড XML আউটপুটে রূপান্তরিত করে।
কমান্ড:
rspec --format junit --out result.xmlএই কমান্ডটি একটি result.xml ফাইল তৈরি করবে যা JUnit ফরম্যাটে সমস্ত টেস্ট ফলাফল ধারণ করবে।
আউটপুট উদাহরণ (XML):
<testsuites>
<testsuite name="RSpec" tests="1" failures="1">
<testcase name="Calculator should add two numbers correctly" time="0.1">
<failure message="expected: 4 but got: 3"></failure>
</testcase>
</testsuite>
</testsuites>৪. HTML Format (HTML ফরম্যাট)
HTML ফরম্যাটে রিপোর্ট তৈরি করলে আপনি একটি ওয়েব ব্রাউজারে রিপোর্ট দেখতে পারবেন, যা বেশ বিস্তারিত এবং আকর্ষণীয় হয়। এটি টেস্টের ফলাফল, ফলাফল গাছ, এবং আরো অনেক কিছু দেখায়।
কমান্ড:
rspec --format html --out result.htmlএই কমান্ডটি result.html নামে একটি HTML ফাইল তৈরি করবে, যেটি ব্রাউজারে খোলার মাধ্যমে আপনি বিস্তারিত রিপোর্ট দেখতে পারবেন।
আউটপুট:
result.html ফাইলটি একটি প্রফেশনাল স্টাইলড রিপোর্ট তৈরি করবে যা ব্রাউজারে দেখতে সহজ হবে।
৫. Progress Format (প্রগ্রেস ফরম্যাট)
প্রগ্রেস ফরম্যাট একটি দ্রুত, সংক্ষিপ্ত আউটপুট প্রদান করে যেখানে কেবল ., F, এবং E দেখানো হয়। এটি সাধারণত দ্রুত রান করার সময় ব্যবহার করা হয় যেখানে আপনি টেস্টের ফলাফল দেখতে চান, তবে বিস্তারিত তথ্য প্রয়োজন হয় না।
কমান্ড:
rspec --format progressআউটপুট:
..F..
Failures:
1) Calculator should add two numbers correctly
Failure/Error: expect(calculator.add(1, 2)).to eq(4)
expected: 4
got: 3৬. Custom Formatters (কাস্টম ফরম্যাটার)
RSpec আপনাকে কাস্টম আউটপুট ফরম্যাট তৈরি করতে দেয়। আপনি যদি নির্দিষ্ট একটি আউটপুট বা ফরম্যাট চান, তবে আপনি নিজস্ব formatter তৈরি করতে পারেন। আপনি এটি একটি Ruby ক্লাস হিসাবে তৈরি করতে পারেন যা RSpec::Core::Formatters মডিউলটি ইমপ্লিমেন্ট করে।
উদাহরণ:
# custom_formatter.rb
class CustomFormatter
def initialize(output)
@output = output
end
def example_passed(example)
@output.puts "Test passed: #{example.description}"
end
def example_failed(example)
@output.puts "Test failed: #{example.description}"
end
endকাস্টম ফরম্যাটার ব্যবহার:
rspec --format CustomFormatter৭. Progress Bar
এটি মূলত progress ফরম্যাটের একটি উন্নত সংস্করণ যা একটি প্রগ্রেস বার আউটপুটের মাধ্যমে আপনার টেস্টের অগ্রগতি দেখায়। এই ফরম্যাটটি বড় টেস্ট স্যুটে খুবই সহায়ক যেখানে অনেক টেস্ট একসাথে রান করছে।
কমান্ড:
rspec --format progress --colorএটি টেস্ট চালানোর সময় রঙিন প্রগ্রেস বার দেখাবে, যা টেস্টের পাস বা ফেল স্ট্যাটাস সহজে চিহ্নিত করতে সাহায্য করবে।
৮. Failure Report (ফেলিউর রিপোর্ট)
rspec কমান্ডে --fail-fast অপশন ব্যবহার করে আপনি নির্দিষ্ট করতে পারেন যে প্রথম ব্যর্থতার পরেই টেস্ট বন্ধ করে দিতে। এটি বড় স্যুটের ক্ষেত্রে দ্রুত ফলাফল পেতে সহায়ক হতে পারে।
কমান্ড:
rspec --fail-fastএই অপশনটি টেস্ট রান করার সময় প্রথম কোন টেস্ট ফেল হলে তার পরবর্তী টেস্টগুলো চালানো বন্ধ করে দেবে এবং আপনি দ্রুত রিপোর্ট পেতে পারেন।
সারাংশ
RSpec-এর Reporting Options বিভিন্ন আউটপুট ফরম্যাট সরবরাহ করে যা আপনার টেস্ট ফলাফল বিশ্লেষণ করতে সহায়ক। আপনি documentation, JUnit, HTML, progress, এবং custom formatters এর মাধ্যমে টেস্ট রিপোর্ট কাস্টমাইজ করতে পারেন। এই রিপোর্টিং অপশনগুলোর সাহায্যে আপনি সহজেই টেস্টের ফলাফল দেখতে, বিশ্লেষণ করতে এবং প্রয়োজনীয় পরিবর্তন করতে পারেন।
Read more