TestNG একটি জনপ্রিয় Java টেস্টিং ফ্রেমওয়ার্ক যা বিভিন্ন ধরনের টেস্ট চালানোর জন্য ব্যবহার করা হয়। টেস্টএনজি প্রাথমিকভাবে built-in listeners প্রদান করে, তবে আপনি আপনার নিজস্ব কাস্টম listeners তৈরি করতে পারেন যাতে টেস্ট চলাকালীন নির্দিষ্ট অ্যাকশনগুলোর প্রতি আপনার নজর থাকে।
কাস্টম লিসেনার কী?
TestNG এর লিসেনার (Listeners) হলো এমন একটি ইন্টারফেস যা টেস্ট চলাকালীন ইভেন্টগুলির উপর নজর রাখতে এবং সেগুলির উপর কাস্টম কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়। এটি বিভিন্ন ইভেন্ট যেমন টেস্ট শুরু, টেস্ট সফল, টেস্ট ব্যর্থ ইত্যাদি ট্র্যাক করতে ব্যবহৃত হতে পারে।
কাস্টম লিসেনার তৈরি করার পদক্ষেপ
TestNG এ কাস্টম লিসেনার তৈরি করতে হলে, আপনাকে ITestListener ইন্টারফেসটি ইমপ্লিমেন্ট করতে হবে। নিচে এর একটি উদাহরণ দেওয়া হল।
১. ITestListener ইন্টারফেস ইমপ্লিমেন্ট করা
প্রথমে একটি ক্লাস তৈরি করুন যা ITestListener ইন্টারফেসটি ইমপ্লিমেন্ট করবে। এই ইন্টারফেসটি টেস্টের বিভিন্ন ইভেন্টে রেসপন্স করতে সাহায্য করবে।
import org.testng.ITestListener;
import org.testng.ITestResult;
public class CustomListener implements ITestListener {
@Override
public void onTestStart(ITestResult result) {
System.out.println("টেস্ট শুরু: " + result.getName());
}
@Override
public void onTestSuccess(ITestResult result) {
System.out.println("টেস্ট সফল: " + result.getName());
}
@Override
public void onTestFailure(ITestResult result) {
System.out.println("টেস্ট ব্যর্থ: " + result.getName());
}
@Override
public void onTestSkipped(ITestResult result) {
System.out.println("টেস্ট বাদ দেয়া: " + result.getName());
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// এই মেথডটি অল্প কিছু ব্যর্থতার পরও টেস্টকে সফল বলে চিহ্নিত করার জন্য ব্যবহৃত হয়
}
@Override
public void onStart(org.testng.ITestContext context) {
System.out.println("টেস্ট শুরু হচ্ছে: " + context.getName());
}
@Override
public void onFinish(org.testng.ITestContext context) {
System.out.println("টেস্ট শেষ: " + context.getName());
}
}
এই ক্লাসটি টেস্ট শুরু, সফল হওয়া, ব্যর্থ হওয়া, এবং বাদ দেওয়া ইভেন্টগুলির উপর কাস্টম অ্যাকশন প্রিন্ট করবে।
২. লিসেনার টেস্টNG কনফিগারেশনে যোগ করা
TestNG কনফিগারেশনে কাস্টম লিসেনার যোগ করতে হলে, আপনি testng.xml ফাইল ব্যবহার করতে পারেন।
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Test Suite">
<listeners>
<listener class-name="CustomListener"/>
</listeners>
<test name="My Test">
<classes>
<class name="TestClass"/>
</classes>
</test>
</suite>
এখানে, <listener class-name="CustomListener"/> অংশটি কাস্টম লিসেনার যুক্ত করে।
৩. টেস্ট ক্লাস তৈরি করা
এখন, একটি টেস্ট ক্লাস তৈরি করা যাক যাতে আমাদের কাস্টম লিসেনার কার্যকরী হবে।
import org.testng.annotations.Test;
public class TestClass {
@Test
public void testMethod1() {
System.out.println("টেস্ট ১ চালানো হচ্ছে");
}
@Test
public void testMethod2() {
System.out.println("টেস্ট ২ চালানো হচ্ছে");
throw new RuntimeException("একটি ত্রুটি ঘটেছে");
}
}
এখানে দুটি টেস্ট মেথড রয়েছে—একটি সফল এবং অন্যটি ব্যর্থ হবে।
৪. কাস্টম লিসেনার কার্যকরী হওয়া
এখন, testng.xml ফাইলটি রান করলে কাস্টম লিসেনারের মাধ্যমে আপনি টেস্টের বিভিন্ন স্টেজের ইভেন্ট ট্র্যাক করতে পারবেন। উদাহরণস্বরূপ, টেস্ট শুরু, সফল, বা ব্যর্থ হওয়ার সময় কাস্টম বার্তা দেখতে পারবেন।
সারাংশ
TestNG তে কাস্টম লিসেনার ব্যবহার করে আপনি টেস্ট রানিংয়ের বিভিন্ন ইভেন্টের উপর নজর রাখতে এবং সেগুলির জন্য কাস্টম কার্যক্রম পরিচালনা করতে পারেন। ITestListener ইন্টারফেস ইমপ্লিমেন্ট করে টেস্টের বিভিন্ন ইভেন্টে কাস্টম অ্যাকশন ট্রিগার করা সম্ভব।