RSpec এর Custom Output Format তৈরি

RSpec Configuration এবং Customization (RSpec কনফিগারেশন এবং কাস্টমাইজেশন) - আরএসপেক (RSpec) - Computer Programming

297

RSpec-এ আপনি কাস্টম আউটপুট ফরম্যাট তৈরি করতে পারেন যাতে টেস্টের ফলাফলগুলি আপনার নির্দিষ্ট প্রয়োজন অনুযায়ী উপস্থাপিত হয়। RSpec-এ আউটপুট ফরম্যাটের ডিফল্ট সিস্টেমটি হলো ফরম্যাটার (Formatter), যা টেস্ট পাস বা ফেল সম্পর্কে তথ্য প্রদর্শন করে। তবে আপনি যদি টেস্ট ফলাফলের জন্য একটি কাস্টম আউটপুট চান, তাহলে কাস্টম ফরম্যাটার ব্যবহার করতে পারেন।

কাস্টম ফরম্যাটারের ধারণা

RSpec একটি formatter কনসেপ্ট প্রদান করে যা আউটপুটের লেআউট এবং স্টাইল কাস্টমাইজ করতে সহায়ক। আপনি আউটপুটের জন্য একটি নিজস্ব ফরম্যাটার তৈরি করে, যা আপনার টেস্ট রান করার সময় ফলাফলকে নির্দিষ্ট ফরম্যাটে দেখাতে পারে।

কাস্টম আউটপুট ফরম্যাটার তৈরি করা

একটি কাস্টম আউটপুট ফরম্যাটার তৈরি করতে, আপনাকে RSpec-এর ফরম্যাটার API ব্যবহার করতে হবে। নিচে কাস্টম আউটপুট ফরম্যাটার তৈরি করার একটি উদাহরণ দেখানো হয়েছে।

১. কাস্টম আউটপুট ফরম্যাটার ক্লাস তৈরি

প্রথমে, একটি নতুন Ruby ক্লাস তৈরি করতে হবে যা RSpec::Core::Formatters::BaseFormatter ক্লাস থেকে ইনহেরিট করবে। এই ক্লাসের মধ্যে আউটপুট প্রদর্শন করার জন্য বিভিন্ন মেথড প্রয়োগ করা হয়।

# custom_formatter.rb
require 'rspec/core/formatters/base_formatter'

class CustomFormatter < RSpec::Core::Formatters::BaseFormatter
  # টেস্ট শুরু হওয়ার সময় কল হবে
  def start(example_count)
    output.puts "টেস্ট রান শুরু হচ্ছে: #{example_count}টি টেস্ট"
  end

  # প্রতিটি টেস্টের ফলাফল দেখাবে
  def example_passed(passed)
    output.puts "✔️ #{passed.description} সফল"
  end

  def example_failed(failed)
    output.puts "❌ #{failed.description} ব্যর্থ"
  end

  # টেস্ট শেষে সার্বিক ফলাফল দেখাবে
  def stop
    output.puts "টেস্ট রান শেষ"
  end
end

এই ক্লাসে:

  • start: টেস্ট শুরু হওয়ার সময় মোট টেস্ট সংখ্যা দেখায়।
  • example_passed: প্রতিটি সফল টেস্টের পরে "✔️" চিহ্ন এবং টেস্টের বর্ণনা প্রদর্শন করে।
  • example_failed: প্রতিটি ব্যর্থ টেস্টের পরে "❌" চিহ্ন এবং ব্যর্থ টেস্টের বর্ণনা প্রদর্শন করে।
  • stop: সব টেস্টের শেষে একটি সমাপ্তি বার্তা প্রদর্শন করে।

২. কাস্টম ফরম্যাটার ব্যবহার করা

এরপর, rspec কমান্ডে কাস্টম ফরম্যাটার ব্যবহারের জন্য এটি কনফিগার করতে হবে। আপনি এটি rspec কমান্ড লাইনের মাধ্যমে বা RSpec কনফিগারেশন ফাইলে (যেমন spec_helper.rb বা rails_helper.rb) সেটআপ করতে পারেন।

কমান্ড লাইনে ব্যবহার:

rspec --format CustomFormatter

RSpec কনফিগারেশন ফাইলে ব্যবহার:

# spec/spec_helper.rb
RSpec.configure do |config|
  config.add_formatter 'CustomFormatter'
end

এখন, যখন আপনি rspec রান করবেন, এটি আপনার কাস্টম ফরম্যাটারের আউটপুট প্রদর্শন করবে।


কাস্টম আউটপুট ফরম্যাটারের আরও উন্নত ফিচার

  • টেস্ট সময়: আপনি টেস্ট চলাকালীন সময়ও আউটপুটে যোগ করতে পারেন।
  • ফলাফল স্টাইল: আপনি JSON, HTML বা অন্য কোনো ফরম্যাটে আউটপুট জেনারেট করতে পারেন।
  • ফাইল আউটপুট: টেস্ট ফলাফল একটি ফাইলে রেকর্ড করতে চাইলে আউটপুটটিকে একটি ফাইলে লেখার জন্য output.puts এর পরিবর্তে File.open ব্যবহার করতে পারেন।

উদাহরণ: টেস্ট ফলাফল JSON ফরম্যাটে আউটপুট করা

class JsonFormatter < RSpec::Core::Formatters::BaseFormatter
  def start(example_count)
    @results = { "total_tests" => example_count, "results" => [] }
  end

  def example_passed(passed)
    @results["results"] << { "example" => passed.description, "status" => "passed" }
  end

  def example_failed(failed)
    @results["results"] << { "example" => failed.description, "status" => "failed", "message" => failed.exception.message }
  end

  def stop
    File.open("test_results.json", "w") { |f| f.write(@results.to_json) }
  end
end

এই কোডটি টেস্ট ফলাফল JSON ফরম্যাটে test_results.json ফাইলে সংরক্ষণ করবে।


সারাংশ

RSpec-এ কাস্টম আউটপুট ফরম্যাট তৈরি করা খুবই সহজ এবং এটি আপনাকে টেস্ট ফলাফল কাস্টমাইজ করার জন্য বিভিন্ন সুবিধা প্রদান করে। আপনি RSpec-এর ফরম্যাটার API ব্যবহার করে আপনার নিজস্ব আউটপুট ফরম্যাট তৈরি করতে পারেন, যা টেস্টের ফলাফলকে আপনার নির্দিষ্ট প্রয়োজন অনুসারে উপস্থাপন করবে।

Content added By
Promotion

Are you sure to start over?

Loading...