Istanbul হলো একটি JavaScript কোড কভারেজ টুল যা আপনার কোডের কতটা অংশ টেস্ট করা হয়েছে, তা বিশ্লেষণ করতে সাহায্য করে। JasmineJS এর সাথে Istanbul ব্যবহার করলে আপনি সহজেই আপনার টেস্টের কভারেজ পরিমাপ করতে পারবেন, যা টেস্টিং প্রক্রিয়াকে আরও শক্তিশালী এবং কার্যকরী করে তোলে।
Istanbul সাধারণত nyc নামেও পরিচিত, যা Istanbul এর CLI টুল। এই টুলটি ব্যবহার করে আপনি Jasmine টেস্টের কোড কভারেজ তৈরি করতে পারেন।
Istanbul (nyc) সেটআপ এবং ইনস্টলেশন
প্রথমে আপনাকে nyc এবং Jasmine টুলগুলো ইনস্টল করতে হবে। নিচে পর্যায়ক্রমে সেগুলি কীভাবে ইনস্টল করবেন তা ব্যাখ্যা করা হয়েছে।
1. প্রয়োজনীয় প্যাকেজ ইনস্টল করা
প্রথমে আপনাকে nyc এবং jasmine ইনস্টল করতে হবে। নিচের কমান্ডগুলো ব্যবহার করুন:
npm install --save-dev jasmine nyc
এটি Jasmine এবং nyc উভয়ই আপনার প্রোজেক্টে ডেভেলপমেন্ট ডিপেনডেন্সি হিসেবে ইনস্টল করবে।
2. Jasmine সেটআপ করা
JasmineJS এর সাথে ইনস্টলেশনের জন্য আপনাকে কিছু কনফিগারেশন করতে হবে। যদি আপনি আগে থেকেই Jasmine সেটআপ করে থাকেন, তবে এই স্টেপটি বাদ দিতে পারেন। তবে যদি নতুন করে সেটআপ করতে চান, তাহলে নিচের কমান্ড ব্যবহার করুন:
npx jasmine init
এটি Jasmine এর জন্য একটি বেসিক কনফিগারেশন তৈরি করবে।
3. NYC (Istanbul) কনফিগারেশন
Istanbul এর মাধ্যমে কোড কভারেজ সংগ্রহ করার জন্য nyc টুলটি ব্যবহার করা হয়। এটি আপনার Jasmine টেস্টের কভারেজ রিপোর্ট তৈরি করবে।
আপনি nyc এর জন্য একটি কনফিগারেশন ফাইল তৈরি করতে পারেন অথবা package.json ফাইলেই কনফিগারেশন করতে পারেন।
package.json ফাইলে নিচের কোডটি যোগ করুন:
{
"scripts": {
"test": "nyc jasmine"
},
"nyc": {
"reporter": ["html", "text-summary"],
"include": ["src/**/*.js"],
"exclude": ["node_modules/**", "test/**"]
}
}
এখানে:
nyc jasmine: এটি Jasmine টেস্ট রান করার পর Istanbul (nyc) দ্বারা কভারেজ রিপোর্ট জেনারেট করবে।reporter: দুটি রিপোর্টার নির্বাচন করা হয়েছে:html: HTML ফরম্যাটে কভারেজ রিপোর্ট।text-summary: টার্মিনালে সংক্ষিপ্ত কভারেজ রিপোর্ট।
include: টেস্ট করার জন্য কোন ফাইল বা ডিরেক্টরি ইনক্লুড করবেন তা নির্ধারণ।exclude: কোন ফাইল বা ডিরেক্টরি কভারেজ রিপোর্ট থেকে বাদ দেবেন তা নির্ধারণ।
4. টেস্ট রান করা এবং কভারেজ রিপোর্ট দেখা
এখন আপনি আপনার টেস্ট রান করতে পারেন এবং কভারেজ রিপোর্ট জেনারেট করতে পারেন। টেস্ট রান করার জন্য নীচের কমান্ডটি ব্যবহার করুন:
npm test
এটি nyc jasmine স্ক্রিপ্ট চালাবে এবং Jasmine টেস্ট রান করার পর কভারেজ রিপোর্ট তৈরি করবে।
- HTML রিপোর্ট: রিপোর্টটি
coverage/ফোল্ডারে একটিindex.htmlফাইল হিসেবে সংরক্ষণ হবে। আপনি ব্রাউজারে এটি খুলে কোড কভারেজ বিশ্লেষণ করতে পারবেন। - Text Summary: টার্মিনালে একটি সংক্ষিপ্ত সারাংশ পাবেন, যা কোড কভারেজের পরিমাণ এবং কোন অংশটি টেস্ট করা হয়নি তা দেখাবে।
5. কভারেজ রিপোর্ট বিশ্লেষণ করা
যখন আপনি HTML রিপোর্ট ব্রাউজারে খুলবেন, আপনি নিম্নলিখিত তথ্য দেখতে পাবেন:
- প্রতিটি ফাইলের কভারেজ: প্রতিটি ফাইলের টেস্ট করা অংশের পরিমাণ এবং কোন অংশটি টেস্ট করা হয়নি তা দেখাবে।
- ফাংশন, স্টেটমেন্ট এবং ব্রাঞ্চ কভারেজ: কভারেজ রিপোর্টে
statements,functions, এবংbranchesএর কভারেজ পরিমাণ দেখা যাবে। - যে অংশগুলো টেস্ট করা হয়নি: কোনো কোড সেগমেন্ট টেস্ট না হলে, তা রিপোর্টে স্পষ্টভাবে চিহ্নিত হবে।
6. কোড কভারেজে উন্নতি আনা
কভারেজ রিপোর্ট বিশ্লেষণ করার পর আপনি জানতে পারবেন কোন অংশগুলো টেস্ট হয়নি। এসব অংশে নতুন টেস্ট কেস লিখে কভারেজ বৃদ্ধি করতে পারেন। JasmineJS এর মাধ্যমে নতুন টেস্ট কেস লিখে আপনি আপনার টেস্ট স্যুট আরও শক্তিশালী করতে পারবেন।
সারাংশ
JasmineJS এবং Istanbul (nyc) একত্রে ব্যবহার করলে আপনি আপনার JavaScript কোডের কার্যকারিতা এবং টেস্ট কভারেজ সহজে পরিমাপ করতে পারবেন। Istanbul কোড কভারেজ রিপোর্ট তৈরির মাধ্যমে টেস্টের শক্তি এবং কভারেজ বিশ্লেষণ করা সম্ভব হয়। এটি আপনার কোডের কোথায় টেস্ট কমপ্লিট এবং কোথায় টেস্ট বাড়ানো প্রয়োজন তা শনাক্ত করতে সহায়ক। JasmineJS এর সাথে nyc টুল ব্যবহার করলে আপনার টেস্টিং প্রক্রিয়া আরও উন্নত এবং দক্ষ হয়ে ওঠে।
Read more