Test Suite এবং Grouping হল TestNG-এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য। এগুলো বড় টেস্টিং প্রজেক্ট পরিচালনা এবং টেস্ট কেস পরিচালনাকে আরও সহজ করে তোলে।
Test Suite
Test Suite মূলত এক বা একাধিক টেস্ট ক্লাসের একটি সংগ্রহ। TestNG-তে এটি একটি XML ফাইল দ্বারা সংজ্ঞায়িত হয়। একটি টেস্ট স্যুট ব্যবহার করে টেস্ট ক্লাস, মেথড এবং গ্রুপ চালানোর জন্য নির্দিষ্ট নিয়ম তৈরি করা যায়।
Test Suite তৈরি করার ধাপ
- TestNG-এর জন্য একটি XML ফাইল তৈরি করুন।
<suite>ট্যাগ ব্যবহার করে স্যুট ডিফাইন করুন।<test>ট্যাগের মাধ্যমে টেস্ট ক্লাস বা গ্রুপ উল্লেখ করুন।
উদাহরণ
ধরুন, আমাদের দুটি টেস্ট ক্লাস রয়েছে: TestClass1 এবং TestClass2।
TestClass1.java
import org.testng.annotations.Test;
public class TestClass1 {
@Test
public void testMethod1() {
System.out.println("TestClass1: Test Method 1");
}
}
TestClass2.java
import org.testng.annotations.Test;
public class TestClass2 {
@Test
public void testMethod2() {
System.out.println("TestClass2: Test Method 2");
}
}
TestNG XML ফাইল: testng.xml
<suite name="TestSuiteExample">
<test name="TestClassSuite">
<classes>
<class name="TestClass1"/>
<class name="TestClass2"/>
</classes>
</test>
</suite>
XML স্যুট রান করার পদ্ধতি
- Eclipse IDE-তে
testng.xmlফাইলটি রান করুন। - আউটপুট:
TestClass1: Test Method 1
TestClass2: Test Method 2
উপকারিতা:
- একাধিক টেস্ট ক্লাস বা টেস্ট মেথড একত্রে পরিচালনা করা যায়।
- নির্দিষ্ট ক্রমানুসারে টেস্ট চালানোর নিয়ম তৈরি করা সম্ভব।
Grouping
Grouping টেস্ট কেসগুলোকে লজিক্যাল বিভাগে ভাগ করার পদ্ধতি। এটি বড় টেস্ট স্যুট পরিচালনার জন্য গুরুত্বপূর্ণ।
Grouping-এর প্রয়োজনীয়তা
- টেস্ট কেসগুলোকে লজিক্যাল বিভাগে ভাগ করে রান করা।
- নির্দিষ্ট গ্রুপের টেস্ট চালানো বা বাদ দেওয়া।
Grouping ব্যবহার করার ধাপ
@Testঅ্যানোটেশনের groups অ্যাট্রিবিউট ব্যবহার করে গ্রুপ নির্ধারণ করুন।- XML ফাইলের মাধ্যমে নির্দিষ্ট গ্রুপ রান বা স্কিপ করুন।
উদাহরণ
TestNG ক্লাস: TestGroupingExample.java
import org.testng.annotations.Test;
public class TestGroupingExample {
@Test(groups = {"sanity"})
public void testMethod1() {
System.out.println("Sanity Test: Method 1");
}
@Test(groups = {"regression"})
public void testMethod2() {
System.out.println("Regression Test: Method 2");
}
@Test(groups = {"sanity", "regression"})
public void testMethod3() {
System.out.println("Sanity and Regression Test: Method 3");
}
}
TestNG XML ফাইল: testng-groups.xml
<suite name="GroupingExample">
<test name="SanityTests">
<groups>
<run>
<include name="sanity"/>
</run>
</groups>
<classes>
<class name="TestGroupingExample"/>
</classes>
</test>
</suite>
XML স্যুট রান করার পদ্ধতি
- Eclipse IDE-তে
testng-groups.xmlফাইলটি রান করুন। - আউটপুট:
Sanity Test: Method 1
Sanity and Regression Test: Method 3
Multiple Groups ব্যবহার করা
একটি টেস্ট মেথড একাধিক গ্রুপের অন্তর্ভুক্ত হতে পারে। উপরের উদাহরণে, testMethod3 sanity এবং regression উভয় গ্রুপেই অন্তর্ভুক্ত।
Group Exclusion (গ্রুপ বাদ দেওয়া)
নির্দিষ্ট গ্রুপের টেস্ট মেথড চালানো থেকে বাদ দেওয়া যায়।
উদাহরণ
TestNG XML ফাইল: testng-exclude.xml
<suite name="ExclusionExample">
<test name="ExcludeRegressionTests">
<groups>
<run>
<exclude name="regression"/>
</run>
</groups>
<classes>
<class name="TestGroupingExample"/>
</classes>
</test>
</suite>
আউটপুট:
Sanity Test: Method 1
সুবিধা
- Test Suite:
- বড় প্রজেক্টে টেস্ট কেস সংগঠিত করা।
- নির্দিষ্ট ক্লাস বা পদ্ধতি চালানোর নিয়ন্ত্রণ।
- Grouping:
- লজিক্যাল টেস্ট গ্রুপ তৈরি।
- টেস্ট কেস ফিল্টার করে চালানো।
সারাংশ
Test Suite ব্যবহার করে একাধিক টেস্ট ক্লাস বা পদ্ধতি একত্রে চালানো যায়, যেখানে Grouping নির্দিষ্ট বিভাগে টেস্ট কেস সংগঠিত করে কার্যকরভাবে চালানোর সুযোগ দেয়। TestNG-তে স্যুট এবং গ্রুপিং একত্রে ব্যবহার করে বড় প্রজেক্টের টেস্টিং আরও সহজ এবং গঠনমূলক হয়।
Read more