Continuous Integration (CI) হল একটি সফটওয়্যার ডেভেলপমেন্ট প্র্যাকটিস যেখানে ডেভেলপাররা কোড পরিবর্তনগুলি নিয়মিতভাবে একটি শেয়ারড রেপোজিটরিতে ইন্টিগ্রেট করেন। CI ব্যবহারের উদ্দেশ্য হল ত্রুটি সনাক্তকরণ এবং দ্রুত রোলব্যাকের মাধ্যমে সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া আরো দ্রুত এবং কার্যকরী করা।
JasmineJS দিয়ে Browser Testing করার মাধ্যমে আপনি নিশ্চিত হতে পারেন যে আপনার কোড ব্রাউজারে সঠিকভাবে কাজ করছে, বিশেষ করে যখন আপনি JavaScript ব্যবহার করছেন। ব্রাউজার টেস্টিং CI পরিবেশে অটোমেটিকভাবে চলে, যা আপনাকে কোডের ইনটিগ্রিটি বজায় রাখতে সহায়তা করে।
এই টিউটোরিয়ালে আমরা দেখব কিভাবে JasmineJS ব্যবহার করে ব্রাউজার টেস্টিং করতে পারবেন এবং এটি কিভাবে Continuous Integration (CI) পরিবেশে কাজ করে।
JasmineJS ব্রাউজার টেস্টিং এর জন্য সরঞ্জামসমূহ
JasmineJS এর মাধ্যমে ব্রাউজার টেস্টিং করার জন্য কিছু সরঞ্জাম ও প্লাগইন ব্যবহৃত হয়:
- Karma: Karma হল একটি টেস্ট রানার, যা বিভিন্ন ব্রাউজারে Jasmine টেস্ট চালাতে সাহায্য করে। এটি CI পরিবেশে ব্যবহারের জন্য উপযুক্ত, কারণ এটি অটোমেটিকভাবে টেস্ট রানের ফলাফল প্রদান করে এবং রিয়েল-টাইমে রিপোর্ট দেখায়।
- PhantomJS: PhantomJS একটি হেডলেস ব্রাউজার, যা UI রেন্ডারিং ছাড়া কোড পরীক্ষা করতে পারে। এটি মূলত হেডলেস ব্রাউজার হিসেবে ব্যবহৃত হয়, যা টেস্টিংয়ের জন্য খুবই উপকারী।
- Travis CI বা Jenkins: CI সিস্টেম যেখানে JasmineJS টেস্টগুলি সঠিকভাবে এবং অটোমেটিক্যালি রান করা যায়।
Karma এবং JasmineJS দিয়ে ব্রাউজারে টেস্ট চালানো
Karma টেস্ট রানার এবং JasmineJS ব্যবহার করে ব্রাউজারে টেস্ট চালানো খুবই সহজ। এর মাধ্যমে আপনি ব্রাউজারভিত্তিক Jasmine টেস্ট চালাতে পারেন এবং টেস্টের ফলাফল CI সিস্টেমের মাধ্যমে পেতে পারেন।
1. Karma ইনস্টল করা
প্রথমে আপনার প্রজেক্টে Karma এবং অন্যান্য প্রয়োজনীয় প্যাকেজ ইনস্টল করতে হবে।
npm install karma karma-jasmine karma-chrome-launcher jasmine-core --save-dev
এখানে:
- karma-jasmine: Jasmine এর জন্য Karma অ্যাডাপ্টার।
- karma-chrome-launcher: Chrome ব্রাউজারে টেস্ট চালানোর জন্য।
2. Karma কনফিগারেশন ফাইল তৈরি করা
এরপর Karma কনফিগারেশন ফাইল তৈরি করতে হবে, যেটি টেস্ট রানারকে নির্দেশ দিবে কোথায় টেস্ট কেস রয়েছে এবং কোন ব্রাউজারগুলোর মাধ্যমে টেস্ট চালাতে হবে।
karma init karma.conf.js
এই কমান্ডটি আপনাকে একটি কনফিগারেশন ফাইল তৈরি করতে সহায়তা করবে।
কনফিগারেশন ফাইলের মধ্যে কিছু মৌলিক সেটআপ হবে:
module.exports = function(config) {
config.set({
frameworks: ['jasmine'], // Jasmine ফ্রেমওয়ার্ক ব্যবহার
files: [
'src/**/*.js', // আপনার JavaScript ফাইল
'test/**/*.spec.js' // টেস্ট কেস ফাইল
],
browsers: ['Chrome'], // Chrome ব্রাউজার ব্যবহার করা হবে
reporters: ['progress'], // রিপোর্টিং স্টাইল
singleRun: true // একবার টেস্ট রান হবে
});
};
এখানে:
files: আপনার প্রজেক্টের JavaScript কোড এবং টেস্ট ফাইল এখানে যুক্ত করতে হবে।browsers: কোন ব্রাউজারে টেস্ট চালাতে চান তা নির্ধারণ করতে হবে (এখানে Chrome ব্যবহার করা হয়েছে)।
3. Karma দিয়ে টেস্ট রান করা
এখন আপনি Karma চালিয়ে আপনার JasmineJS টেস্ট ব্রাউজারে রান করতে পারবেন:
karma start karma.conf.js
এটি আপনার টেস্টগুলো নির্দিষ্ট ব্রাউজারে চালাবে এবং ফলাফল দেখাবে।
Continuous Integration (CI) পরিবেশে JasmineJS টেস্ট
JasmineJS এবং Karma ব্যবহার করে ব্রাউজারে টেস্ট চালানোর প্রক্রিয়াটি CI সার্ভিস যেমন Travis CI বা Jenkins এর মাধ্যমে অটোমেটিকভাবে করা যেতে পারে।
1. Travis CI এ JasmineJS টেস্ট সেটআপ
Travis CI একটি জনপ্রিয় Continuous Integration টুল, যা গিটহাব রিপোজিটরি থেকে কোড পুল করে অটোমেটিক টেস্টিং এবং বিল্ড প্রসেস চালাতে পারে।
Travis CI সেটআপ করতে:
- প্রথমে
.travis.ymlফাইল তৈরি করুন:
language: node_js
node_js:
- "14" # আপনার প্রয়োজনীয় Node.js ভার্সন উল্লেখ করুন
install:
- npm install
script:
- karma start karma.conf.js
এখানে:
language: node_js: Travis CI কে বলে দেয় যে Node.js পরিবেশে টেস্ট চালাতে হবে।script:karma start karma.conf.jsকমান্ড দিয়ে টেস্ট চালানো হবে।
2. Jenkins এ JasmineJS টেস্ট
Jenkins এর মাধ্যমে Continuous Integration সেটআপ করতে:
- Jenkins সার্ভারে একটি নতুন জব তৈরি করুন।
- Source Code Management সেকশনে Git রিপোজিটরি URL দিন।
- Build Steps এ একটি Shell Script রান করুন যা Karma টেস্ট রান করবে:
npm install
karma start karma.conf.js --singleRun
এটি আপনার JasmineJS টেস্টগুলো Jenkins এ রান করবে এবং ফলাফল দেখাবে।
PhantomJS দিয়ে হেডলেস টেস্টিং
PhantomJS হল একটি হেডলেস ব্রাউজার, যা UI রেন্ডারিং ছাড়া JavaScript কোড রান করতে পারে এবং টেস্ট চালাতে পারে। আপনি Karma কনফিগারেশনে PhantomJS ব্যবহার করে টেস্ট চালাতে পারেন, বিশেষ করে যদি আপনি গ্রাফিকাল ইউজার ইন্টারফেস (GUI) ছাড়া টেস্ট করতে চান।
Karma কনফিগারেশনে PhantomJS ব্যবহার করতে:
browsers: ['PhantomJS']
এটি PhantomJS এ JasmineJS টেস্টগুলো চালাবে এবং ফলাফল প্রদান করবে।
সারাংশ
JasmineJS দিয়ে Browser Testing করার জন্য Karma ব্যবহার করা হয়, যা আপনার কোড ব্রাউজারে চালাতে সক্ষম এবং ফলাফল CI সিস্টেমে ইন্টিগ্রেট করা যায়। JasmineJS এর টেস্টগুলো CI সিস্টেম যেমন Travis CI বা Jenkins এর মাধ্যমে অটোমেটিক্যালি চালানো সম্ভব। PhantomJS ব্যবহার করে আপনি হেডলেস ব্রাউজারে টেস্ট চালাতে পারেন, যা সিস্টেমের ওপর লোড কমায়। এই পদ্ধতিগুলো CI প্রক্রিয়ায় কোডের গুণগত মান নিশ্চিত করতে সহায়তা করে।
Read more