Maven একটি পপুলার বিল্ড এবং ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা Java প্রোজেক্টে ব্যবহৃত হয়। Maven ব্যবহার করে TestNG এর টেস্ট রান করা সহজ এবং সুসংগঠিত। এতে সিস্টেমের নির্দিষ্ট পরিবেশে টেস্ট রান করা, ডিপেন্ডেন্সি ম্যানেজমেন্ট এবং রিপোর্টিং সহজ হয়। এখানে আমরা Maven এর সাথে TestNG ইন্টিগ্রেশন নিয়ে একটি উদাহরণ দেখবো।
Maven প্রোজেক্ট তৈরি করা
প্রথমে একটি Maven প্রোজেক্ট তৈরি করতে হবে, যাতে TestNG টেস্ট রান করা যাবে।
Step 1: Maven প্রোজেক্ট তৈরি করা
- IDE (যেমন, Eclipse বা IntelliJ) ব্যবহার করে Maven প্রোজেক্ট তৈরি করুন।
- pom.xml ফাইল তৈরি করুন, যা Maven কনফিগারেশন সংরক্ষণ করবে।
TestNG এর ডিপেন্ডেন্সি যোগ করা
pom.xml ফাইলে TestNG এর ডিপেন্ডেন্সি যোগ করতে হবে যাতে TestNG টুলটি সঠিকভাবে কাজ করতে পারে।
pom.xml ফাইলের উদাহরণ:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>testng-maven-integration</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!-- TestNG Dependency -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.7.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Maven Surefire Plugin for running tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
</plugins>
</build>
</project>
এখানে:
- TestNG ডিপেন্ডেন্সি ব্যবহার করা হয়েছে যাতে TestNG টেস্ট ফ্রেমওয়ার্ক Maven প্রোজেক্টে অন্তর্ভুক্ত হয়।
- Maven Surefire Plugin টেস্ট এক্সিকিউশনের জন্য ব্যবহৃত হয়, যা TestNG বা JUnit টেস্ট রান করতে সাহায্য করে।
TestNG টেস্ট তৈরি করা
এখন আমাদের TestNG টেস্ট তৈরি করতে হবে। এখানে একটি সাধারণ টেস্ট ক্লাসের উদাহরণ দেয়া হলো।
TestNG টেস্ট ক্লাস (TestClass.java):
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestClass {
@Test
public void testAddition() {
int sum = 5 + 5;
Assert.assertEquals(sum, 10, "Sum is correct");
}
@Test
public void testSubtraction() {
int diff = 10 - 5;
Assert.assertEquals(diff, 5, "Difference is correct");
}
@Test
public void testMultiplication() {
int product = 5 * 5;
Assert.assertEquals(product, 25, "Product is correct");
}
}
এখানে, TestClass একটি সিম্পল টেস্ট ক্লাস যা TestNG টেস্ট মেথড (যেমন, testAddition, testSubtraction, এবং testMultiplication) ধারণ করে। এগুলো Assert.assertEquals() ব্যবহার করে পরীক্ষার ফলাফল যাচাই করছে।
TestNG XML কনফিগারেশন
TestNG XML ফাইল ব্যবহার করে আমরা টেস্ট কনফিগার করতে পারি এবং টেস্ট মেথডগুলো চালাতে পারি। এখানে একটি সাধারণ TestNG XML ফাইল এর উদাহরণ দেওয়া হল।
testng.xml:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Test Suite">
<test name="TestNG Tests">
<classes>
<class name="TestClass"/>
</classes>
</test>
</suite>
এটি TestNG টেস্ট এক্সিকিউশন কনফিগার করে এবং TestClass এর সব টেস্ট মেথড চালানোর জন্য নির্দেশ দেয়।
Maven দিয়ে TestNG টেস্ট রান করা
এখন আমাদের Maven দিয়ে টেস্ট রান করতে হবে। এর জন্য নিচের স্টেপগুলি অনুসরণ করতে হবে:
- Command Line থেকে Maven প্রোজেক্টে যান।
- নিচের কমান্ডটি রান করুন:
mvn test
এটি Maven-এর মাধ্যমে TestNG টেস্ট রান করবে। Maven Surefire Plugin স্বয়ংক্রিয়ভাবে testng.xml কনফিগারেশন ফাইল অনুযায়ী টেস্ট এক্সিকিউট করবে এবং রিপোর্ট তৈরি করবে।
Maven এর মাধ্যমে রিপোর্ট দেখা
Maven টেস্ট রান করার পরে, target ডিরেক্টরিতে টেস্টের ফলাফল সম্পর্কিত রিপোর্ট পাওয়া যাবে।
target/surefire-reportsফোল্ডারে TestNG এর টেস্ট রিপোর্ট থাকবে।- এখানে
TEST-TestClass.xmlএবংTestClass.txtফাইলগুলো পাবেন, যেখানে টেস্টের ফলাফল থাকবে।
উপকারিতা
- Maven ব্যবহার করে টেস্ট পরিচালনা করা অনেক সহজ, এবং এতে ডিপেন্ডেন্সি ম্যানেজমেন্ট অত্যন্ত কার্যকর হয়।
- TestNG প্রোজেক্টে ইন্টিগ্রেট করার মাধ্যমে একাধিক টেস্ট রান করা এবং রিপোর্ট সংগ্রহ করা সহজ হয়ে যায়।
- XML কনফিগারেশন দ্বারা টেস্ট কনফিগারেশন সহজ এবং সংগঠিত করা সম্ভব।
- Maven Surefire Plugin এর মাধ্যমে সিস্টেমের সাথে একত্রে টেস্ট রান করা যায়, যেমন Jenkins বা অন্য CI/CD টুলে ইন্টিগ্রেশন।
সারাংশ
TestNG এবং Maven ইন্টিগ্রেশন একটি শক্তিশালী টুলিং প্যাকেজ সরবরাহ করে যা জাভা প্রোজেক্টের টেস্টিং প্রক্রিয়াকে আরও সুশৃঙ্খল এবং সহজ করে তোলে। Maven টুল ব্যবহার করে ডিপেন্ডেন্সি ম্যানেজমেন্ট এবং টেস্ট রান করা সহজ হয়, এবং TestNG দিয়ে টেস্ট ফলাফল বিশ্লেষণ করা আরও কার্যকর হয়।
Read more