CI পরিবেশে স্বয়ংক্রিয় টেস্ট রান করা

Continuous Integration (CI) এবং JasmineJS - জ্যাসমিনজেএস (JasmineJS) - Web Development

325

Continuous Integration (CI) হল একটি উন্নত সফটওয়্যার ডেভেলপমেন্ট প্র্যাকটিস যেখানে কোড পরিবর্তনগুলি বারবার অটোমেটিক্যালি একটি শেয়ারড রিপোজিটরিতে মেশানো হয়। CI পরিবেশে টেস্টিং স্বয়ংক্রিয়ভাবে চালানোর মাধ্যমে, উন্নত সফটওয়্যার মান এবং দ্রুত সমস্যা শনাক্তকরণ সম্ভব হয়। JasmineJS ব্যবহার করে CI সিস্টেমে স্বয়ংক্রিয় টেস্ট রান করা সহজ এবং কার্যকরী।

এই গাইডে, আমরা দেখব কিভাবে JasmineJS ব্যবহার করে CI পরিবেশে স্বয়ংক্রিয়ভাবে টেস্ট চালানো যেতে পারে, এবং এটি কীভাবে বিভিন্ন CI সার্ভিসে কার্যকরভাবে সেটআপ করা হয়।


JasmineJS এবং Karma দিয়ে CI পরিবেশে টেস্ট রান করা

Karma হল একটি টেস্ট রানার যা JasmineJS এর সাথে যুক্ত হয়ে ব্রাউজারে টেস্ট চালাতে সহায়তা করে। এটি CI পরিবেশে টেস্টিং স্বয়ংক্রিয় করতে সাহায্য করে। আপনাকে প্রথমে Karma এবং অন্যান্য প্রয়োজনীয় প্যাকেজ ইনস্টল করতে হবে, তারপর CI সার্ভিস যেমন Travis CI, Jenkins বা GitLab CI এ টেস্ট রানের জন্য কনফিগারেশন করতে হবে।

1. Karma সেটআপ করা

প্রথমে আপনার প্রজেক্টে Karma এবং JasmineJS প্যাকেজ ইনস্টল করতে হবে:

npm install karma karma-jasmine karma-chrome-launcher jasmine-core --save-dev

এখানে:

  • karma-jasmine: Jasmine এর জন্য Karma অ্যাডাপ্টার।
  • karma-chrome-launcher: Chrome ব্রাউজারে টেস্ট চালানোর জন্য।

2. Karma কনফিগারেশন ফাইল তৈরি করা

Karma কনফিগারেশন ফাইল (karma.conf.js) তৈরি করুন, যা টেস্ট চালানোর জন্য প্রয়োজনীয় সেটিংস ধারণ করবে।

karma init karma.conf.js

এরপর karma.conf.js ফাইলটি এভাবে কনফিগার করুন:

module.exports = function(config) {
  config.set({
    frameworks: ['jasmine'], // Jasmine ফ্রেমওয়ার্ক ব্যবহার
    files: [
      'src/**/*.js',  // আপনার সোর্স কোড ফাইল
      'test/**/*.spec.js' // টেস্ট কেস ফাইল
    ],
    browsers: ['Chrome'], // টেস্ট চালানোর জন্য ব্রাউজার
    reporters: ['progress'], // রিপোর্টিং স্টাইল
    singleRun: true // একবার টেস্ট রান হবে
  });
};

এখানে:

  • files: টেস্ট চালানোর জন্য যেসব ফাইল প্রয়োজন, সেগুলো উল্লেখ করতে হবে।
  • browsers: যেসব ব্রাউজারে টেস্ট চালানো হবে, সেই ব্রাউজার উল্লেখ করতে হবে।
  • singleRun: এটি CI পরিবেশে একটি একক রান হবে।

3. Karma দিয়ে টেস্ট রান করা

Karma কনফিগারেশন ফাইল তৈরি করার পর, টেস্ট চালানোর জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করতে হবে:

karma start karma.conf.js

এটি টেস্টগুলো চালাবে এবং ফলাফল দেখাবে। CI পরিবেশে এই প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে রান করবে।


CI সার্ভিসে JasmineJS টেস্ট রান করা

CI সিস্টেমের মাধ্যমে JasmineJS টেস্ট স্বয়ংক্রিয়ভাবে রান করতে হলে, আপনি টেস্টিং সিস্টেমে সংশ্লিষ্ট কনফিগারেশন যুক্ত করতে হবে। নীচে আমরা দুটি জনপ্রিয় CI সিস্টেম Travis CI এবং Jenkins এর মাধ্যমে JasmineJS টেস্ট রান করার প্রক্রিয়া দেখব।

1. Travis CI এ JasmineJS টেস্ট রান করা

Travis CI হল একটি জনপ্রিয় CI সিস্টেম যা গিটহাব রিপোজিটরির সাথে ইন্টিগ্রেট করা যায়। Travis CI সিস্টেমে JasmineJS টেস্ট চালাতে:

  1. প্রথমে আপনার গিটহাব রিপোজিটরিতে .travis.yml ফাইলটি তৈরি করুন:
language: node_js
node_js:
  - "14"  # আপনার প্রয়োজনীয় Node.js ভার্সন উল্লেখ করুন
install:
  - npm install
script:
  - karma start karma.conf.js --singleRun

এখানে:

  • language: node_js: Travis CI কে বলে দেয় যে Node.js ব্যবহার হবে।
  • install: প্রয়োজনীয় প্যাকেজ ইনস্টল করা হবে।
  • script: এখানে Karma কমান্ড ব্যবহার করা হয়েছে যা JasmineJS টেস্ট চালাবে।
  1. এরপর Travis CI আপনার রিপোজিটরি থেকে কোড পুল করে, টেস্ট চালাবে এবং ফলাফল দেখাবে।

2. Jenkins এ JasmineJS টেস্ট রান করা

Jenkins সিস্টেমে JasmineJS টেস্ট চালাতে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে হবে:

  1. Jenkins সার্ভারে একটি নতুন জব তৈরি করুন।
  2. Source Code Management এ আপনার গিট রিপোজিটরি URL দিন।
  3. Build Steps এ একটি Shell Script রান করুন:
npm install
karma start karma.conf.js --singleRun

এটি Karma কমান্ডের মাধ্যমে JasmineJS টেস্ট চালাবে।

  1. Jenkins স্বয়ংক্রিয়ভাবে টেস্ট চালানোর পর রিপোর্ট দেখাবে।

PhantomJS দিয়ে হেডলেস ব্রাউজার টেস্টিং

JasmineJS টেস্ট CI সিস্টেমে চালানোর সময় আপনি PhantomJS ব্যবহার করে হেডলেস ব্রাউজার টেস্টও করতে পারেন। PhantomJS একটি হেডলেস ব্রাউজার যা UI রেন্ডারিং ছাড়া কোড টেস্ট করতে সহায়তা করে।

Karma কনফিগারেশনে PhantomJS ব্যবহার করার জন্য:

browsers: ['PhantomJS']

এটি Karma টেস্ট রানারকে PhantomJS ব্রাউজারে টেস্ট চালানোর নির্দেশ দিবে।


সারাংশ

JasmineJS এবং Karma ব্যবহার করে আপনি CI (Continuous Integration) পরিবেশে টেস্ট স্বয়ংক্রিয়ভাবে চালাতে পারেন। Karma টেস্ট রানার JasmineJS এর সাথে ইন্টিগ্রেট করে বিভিন্ন ব্রাউজারে টেস্ট চালাতে সহায়তা করে, এবং CI সার্ভিস যেমন Travis CI বা Jenkins এ কোড পুশ করলে টেস্টগুলি স্বয়ংক্রিয়ভাবে রান হবে। PhantomJS ব্যবহার করে হেডলেস ব্রাউজারে টেস্ট চালানো সম্ভব, যা CI সিস্টেমে আরও দ্রুত এবং লাইটওয়েট টেস্টিং নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...