Custom Reporter তৈরি এবং কাস্টম আউটপুট

JasmineJS এর Reporter এবং Test Output কাস্টমাইজেশন - জ্যাসমিনজেএস (JasmineJS) - Web Development

327

JasmineJS এ Custom Reporter তৈরি করে আপনি টেস্টের ফলাফল কাস্টমাইজ করতে পারেন। এটি মূলত Jasmine এর টেস্টিং প্রক্রিয়া থেকে যে আউটপুট পাওয়া যায়, তা কাস্টম আউটপুট ফরম্যাটে দেখানোর জন্য ব্যবহৃত হয়। কাস্টম রিপর্টার তৈরি করলে আপনি টেস্টের বিস্তারিত তথ্য, যেমন পাস, ফেইল, স্কিপড টেস্টের তথ্য এবং অন্যান্য কাস্টম মেসেজ ফরম্যাটে প্রদর্শন করতে পারবেন।

JasmineJS এর ডিফল্ট রিপর্টার সাধারণত টেস্টের পাস বা ফেইল হওয়া সম্পর্কে মৌলিক তথ্য প্রদান করে, কিন্তু যদি আপনি আরো ডিটেইলড, ফরম্যাটেড বা বিশেষ ধরণের আউটপুট চান, তাহলে কাস্টম রিপর্টার তৈরি করা যেতে পারে।


Custom Reporter তৈরির পদ্ধতি

JasmineJS এ কাস্টম রিপর্টার তৈরি করতে jasmine.Reporter ক্লাস ব্যবহার করতে হয়। আপনি এই ক্লাসটি এক্সটেন্ড করে আপনার কাস্টম রিপোর্টারের ফাংশনালিটি তৈরি করতে পারেন।

Custom Reporter এর কাঠামো

  1. Reporter Class তৈরি: jasmine.Reporter ক্লাস এক্সটেন্ড করে একটি নতুন ক্লাস তৈরি করতে হবে।
  2. specStarted, specDone, suiteStarted, suiteDone মেথডগুলির মাধ্যমে টেস্টের শুরু এবং শেষের বিভিন্ন ইভেন্ট ট্র্যাক করতে হবে।
  3. log() ফাংশন ব্যবহার করে টেস্টের ফলাফল কাস্টম আউটপুট হিসেবে দেখানো যাবে।

Custom Reporter এর উদাহরণ

function CustomReporter() {
  this.specStarted = function(result) {
    console.log('Starting test: ' + result.description);
  };

  this.specDone = function(result) {
    if (result.status === 'passed') {
      console.log('Test Passed: ' + result.description);
    } else {
      console.log('Test Failed: ' + result.description);
      console.log('Reason: ' + result.failedExpectations[0].message);
    }
  };

  this.suiteStarted = function(result) {
    console.log('Starting suite: ' + result.description);
  };

  this.suiteDone = function(result) {
    console.log('Suite Completed: ' + result.description);
    console.log('Total Specs: ' + result.specs.length);
    console.log('Passing: ' + result.passedCount + ', Failing: ' + result.failedCount);
  };
}

// Jasmine এ Custom Reporter ব্যবহার
jasmine.getEnv().addReporter(new CustomReporter());

এখানে:

  • specStarted(result): এটি একটি টেস্ট শুরু হলে কল হয় এবং টেস্টের বর্ণনা আউটপুট হিসেবে দেখায়।
  • specDone(result): এটি একটি টেস্ট শেষ হলে কল হয় এবং পাস বা ফেইল হওয়া অনুযায়ী আউটপুট দেখায়।
  • suiteStarted(result): এটি একটি টেস্ট স্যুট শুরু হলে কল হয়।
  • suiteDone(result): এটি একটি টেস্ট স্যুট শেষ হলে কল হয় এবং স্যুটের মোট টেস্ট, পাস এবং ফেইল সংখ্যার তথ্য প্রদান করে।

Custom Reporter এর মাধ্যমে কাস্টম আউটপুট

JasmineJS এ কাস্টম রিপর্টার ব্যবহার করে আপনি টেস্টের ফলাফল কাস্টম আউটপুট ফরম্যাটে দেখতে পারেন। যেমন টেস্টের পাস এবং ফেইল হওয়া রিপোর্ট একটি নির্দিষ্ট স্টাইলে প্রদর্শন করা, অথবা ইভেন্ট লগিং এর মাধ্যমে ডিটেইলড আউটপুট প্রস্তুত করা।

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

function CustomReporter() {
  this.specStarted = function(result) {
    console.log('⏳ Starting Test: ' + result.description);
  };

  this.specDone = function(result) {
    let status = result.status === 'passed' ? '✅ Passed' : '❌ Failed';
    let details = result.failedExpectations.length > 0 ? `\n  Error: ${result.failedExpectations[0].message}` : '';
    console.log(`${status}: ${result.description}${details}`);
  };

  this.suiteStarted = function(result) {
    console.log(`\n📂 Suite Started: ${result.description}`);
  };

  this.suiteDone = function(result) {
    console.log(`\n📂 Suite Completed: ${result.description}`);
    console.log(`Total: ${result.totalSpecsDefined} Specs`);
    console.log(`Passed: ${result.passedSpecs.length}, Failed: ${result.failedSpecs.length}`);
  };
}

// Jasmine এ Custom Reporter যোগ করা
jasmine.getEnv().addReporter(new CustomReporter());

এখানে:

  • ইমোজি ব্যবহার: টেস্টের স্ট্যাটাস বা স্যুটের নামের আগে ইমোজি ব্যবহার করে আউটপুটকে আরো ইন্টারঅ্যাকটিভ এবং আকর্ষণীয় করা হয়েছে।
  • কাস্টম মেসেজ: টেস্টটি সফল হলে "✅ Passed", ব্যর্থ হলে "❌ Failed" মেসেজ ব্যবহার করা হয়েছে এবং ত্রুটির বিস্তারিত তথ্য প্রিন্ট করা হয়েছে।
  • Suite Completion: স্যুটের সমাপ্তিতে মোট টেস্ট, পাস এবং ফেইল টেস্টের সংখ্যা প্রদর্শন করা হয়েছে।

Custom Reporter কাস্টমাইজেশন

JasmineJS এর Custom Reporter তৈরির মাধ্যমে আপনি টেস্টের আউটপুট যেমন প্রিন্ট স্টাইল, লগ ফাইলের আউটপুট, বিশেষ কোনো শর্ত অনুযায়ী টেস্টের ফলাফল প্রদর্শন ইত্যাদি কাস্টমাইজ করতে পারেন। আপনি চাইলে টেস্টের ফলাফল HTML ফরম্যাটে, JSON আউটপুট বা অন্য কোনো কাস্টম ফরম্যাটেও রপ্তানি করতে পারেন।

JSON আউটপুটের উদাহরণ:

function JsonReporter() {
  this.specDone = function(result) {
    const testResult = {
      description: result.description,
      status: result.status,
      error: result.failedExpectations.length > 0 ? result.failedExpectations[0].message : null
    };
    console.log(JSON.stringify(testResult, null, 2));
  };
}

jasmine.getEnv().addReporter(new JsonReporter());

এখানে:

  • JSON.stringify(): এই মেথডটি ব্যবহার করে টেস্টের ফলাফল JSON ফরম্যাটে কনভার্ট করা হয়েছে, যাতে আপনি সহজে অন্য সিস্টেমে বা লগ ফাইলে এটি প্রক্রিয়া করতে পারেন।

সারাংশ

  • Custom Reporter ব্যবহার করে JasmineJS এ আপনি টেস্টের আউটপুট কাস্টমাইজ করতে পারেন এবং সুনির্দিষ্ট আউটপুট ফরম্যাট তৈরি করতে পারেন।
  • specStarted(), specDone(), suiteStarted(), suiteDone() মেথডের মাধ্যমে আপনি টেস্ট এবং স্যুটের শুরু এবং শেষের সময়ে কাস্টম আউটপুট তৈরি করতে পারেন।
  • কাস্টম রিপর্টার ব্যবহার করে আপনি টেস্টের ফলাফলকে আরো ইন্টারঅ্যাকটিভ, পরিষ্কার এবং যেকোনো প্রয়োজন অনুযায়ী ফরম্যাটে উপস্থাপন করতে পারেন।
Content added By
Promotion

Are you sure to start over?

Loading...