TestNG-তে টেস্ট রান করার সময় ডায়াগনস্টিক এবং টেস্ট সম্পর্কিত তথ্য লগ (log) করা খুবই গুরুত্বপূর্ণ। এটি বিশেষ করে বড় প্রোজেক্টে টেস্ট ফলাফল বিশ্লেষণ এবং ডিবাগিংয়ের জন্য সাহায্য করে। TestNG নিজেই কিছু লগিং সমর্থন প্রদান করে, তবে আপনি যদি আরো বিস্তারিত এবং কাস্টমাইজড লগিং চান, তবে আপনি Log4j বা SLF4J মতো লগিং ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।
TestNG এবং Logging Integration: প্রাথমিক ধারণা
TestNG-তে লগিং ব্যবহার করার জন্য মূলত দুইটি উপায় রয়েছে:
- TestNG-এর বিল্ট-ইন লগিং
- Log4j বা SLF4J ফ্রেমওয়ার্কের মাধ্যমে লগিং
এই দুইটি পদ্ধতিতে টেস্ট রান করা অবস্থায় লগ মেসেজ সরবরাহ করা সম্ভব।
১. TestNG-এর বিল্ট-ইন লগিং
TestNG কিছু আউটপুট লেখার জন্য Reporter.log() মেথড প্রদান করে, যার মাধ্যমে টেস্ট চলাকালীন লোগিং করা যায়।
উদাহরণ:
import org.testng.Reporter;
import org.testng.annotations.Test;
public class TestNGLoggingExample {
@Test
public void testWithLogging() {
Reporter.log("This is a simple log message.", true); // 'true' enables logging to console
System.out.println("This is a system out message.");
}
}
আউটপুট:
- টেস্ট রান করার পর কনসোলে
Reporter.logমেথডের মাধ্যমে প্রদত্ত লগ মেসেজটি প্রদর্শিত হবে।
Reporter.log() মেথড দিয়ে আপনি কাস্টম মেসেজ লগ করতে পারেন যা কনসোল বা রিপোর্টে দেখা যাবে। আপনি এখানে level প্যারামিটারও ব্যবহার করতে পারেন, যেমন:
true: কনসোলে মেসেজ দেখাবে।false: শুধু লগ ফাইলে সংরক্ষণ করবে।
২. Log4j বা SLF4J ফ্রেমওয়ার্ক ব্যবহার করে লগিং
যদি আপনি আরো উন্নত এবং কাস্টমাইজড লগিং চান, তবে Log4j বা SLF4J ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। নিচে Log4j দিয়ে TestNG টেস্টে লগিং করার উদাহরণ দেখানো হলো।
Log4j সেটআপ এবং কনফিগারেশন:
ধাপ ১: Maven ডিপেনডেন্সি যুক্ত করা
আপনি যদি Maven ব্যবহার করেন, তবে আপনাকে pom.xml ফাইলে Log4j লাইব্রেরি ডিপেনডেন্সি যোগ করতে হবে।
<dependencies>
<!-- Log4j Dependency -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
ধাপ ২: Log4j কনফিগারেশন ফাইল তৈরি করা
আপনাকে Log4j কনফিগারেশন ফাইল (log4j.properties) তৈরি করতে হবে, যাতে আপনি লগ লেভেল এবং আউটপুট ডিরেক্টরি কনফিগার করতে পারেন।
log4j.properties:
log4j.rootLogger=DEBUG, console, file
# Console appender configuration
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c{1}:%L - %m%n
# File appender configuration
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log/test.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c{1}:%L - %m%n
ধাপ ৩: Log4j দিয়ে টেস্ট ক্লাসে লগিং
import org.apache.log4j.Logger;
import org.testng.annotations.Test;
public class Log4jTestExample {
// Log4j logger instance
static Logger logger = Logger.getLogger(Log4jTestExample.class);
@Test
public void testWithLog4j() {
logger.debug("This is a debug message.");
logger.info("This is an info message.");
logger.warn("This is a warning message.");
logger.error("This is an error message.");
logger.fatal("This is a fatal message.");
System.out.println("Log4j integration in TestNG is successful.");
}
}
আউটপুট:
- কনসোলে এবং
log/test.logফাইলে উল্লিখিত বিভিন্ন লগ লেভেল (DEBUG, INFO, WARN, ERROR, FATAL) অনুযায়ী মেসেজগুলো লেখা হবে।
৩. SLF4J এবং Logback ব্যবহার করে লগিং
SLF4J এবং Logback সাধারণত একটি আধুনিক লগিং ফ্রেমওয়ার্ক হিসেবে ব্যবহৃত হয়। এখানে SLF4J এবং Logback দিয়ে লগিং ইন্টিগ্রেট করার একটি উদাহরণ দেওয়া হলো।
SLF4J এবং Logback সেটআপ:
ধাপ ১: Maven ডিপেনডেন্সি যোগ করা
<dependencies>
<!-- SLF4J Dependency -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<!-- Logback Dependency -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
ধাপ ২: Logback কনফিগারেশন ফাইল
logback.xml কনফিগারেশন:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
ধাপ ৩: SLF4J লগিং ব্যবহার করা
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;
public class SLF4JLogTest {
private static final Logger logger = LoggerFactory.getLogger(SLF4JLogTest.class);
@Test
public void testWithSlf4j() {
logger.debug("This is a debug message.");
logger.info("This is an info message.");
logger.warn("This is a warning message.");
logger.error("This is an error message.");
System.out.println("SLF4J with Logback is successfully integrated in TestNG.");
}
}
সারাংশ
- TestNG বিল্ট-ইন লগিং:
Reporter.log()মেথডের মাধ্যমে টেস্ট রান করার সময় সরাসরি লগ মেসেজ কনসোলে বা রিপোর্টে আউটপুট করা যায়। - Log4j: উন্নত লগিং সক্ষমতা প্রদান করে, যেখানে লগ ফাইল এবং কাস্টম লেভেল ব্যবহার করা যেতে পারে।
- SLF4J এবং Logback: একটি আধুনিক এবং ফ্লেক্সিবল লগিং ফ্রেমওয়ার্ক যা টেস্টিং টুলসের মধ্যে ব্যবহৃত হয়।
TestNG এবং লগিং ইন্টিগ্রেশন ডিবাগিং এবং টেস্ট ফলাফল বিশ্লেষণের জন্য অত্যন্ত কার্যকর।
TestNG একটি জনপ্রিয় Java testing framework, যা parallel testing, group testing, এবং test configuration এর জন্য সমর্থন প্রদান করে। Testing-এর সময় সঠিকভাবে logging (লগিং) করা অনেক গুরুত্বপূর্ণ, কারণ এটি ডিবাগিং এবং ট্রাবলশুটিং এ সাহায্য করে। এই লেখায় আমরা দেখব কীভাবে TestNG-এর সাথে একটি logging framework ইন্টিগ্রেট করা যায়।
Log4j: একটি জনপ্রিয় Logging Framework
Log4j হল Java-তে সবচেয়ে জনপ্রিয় logging framework, যা অনেক সুবিধা প্রদান করে। এটি একটি কনফিগারেশন ফাইল ব্যবহার করে লগের স্তর (level), আউটপুট ফাইল (output file), এবং অন্যান্য বিবরণ কনফিগার করতে সহায়ক।
TestNG-এর সাথে Log4j ইন্টিগ্রেট করার জন্য প্রথমে আপনাকে Log4j এর ডিপেন্ডেন্সি আপনার প্রোজেক্টে যোগ করতে হবে।
Log4j এর জন্য ডিপেন্ডেন্সি যোগ করা
Maven বা Gradle ব্যবহার করে Log4j ডিপেন্ডেন্সি যোগ করা যেতে পারে। নিচে Maven ব্যবহার করে Log4j 2.x ডিপেন্ডেন্সি যোগ করার উদাহরণ দেওয়া হল।
pom.xml ফাইলের জন্য:
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
Log4j কনফিগারেশন ফাইল
Log4j কনফিগারেশন সাধারণত একটি log4j2.xml ফাইলে থাকে। এই ফাইলটি লগের স্তর এবং আউটপুট পরিচালনা করে।
নিচে একটি সাধারণ কনফিগারেশন ফাইলের উদাহরণ দেওয়া হল:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level: %msg%n%throwable"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
এই কনফিগারেশনটি Console-এ লগ মেসেজ আউটপুট করবে এবং লগের স্তর INFO থেকে শুরু হবে।
TestNG টেস্টে Log4j ব্যবহার
TestNG টেস্ট কেসে Log4j ব্যবহার করার জন্য প্রথমে Log4j এর logger কে ইনিশিয়ালাইজ করতে হবে এবং তারপর লগ মেসেজগুলো যুক্ত করতে হবে।
নিচে একটি উদাহরণ দেওয়া হল:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.annotations.Test;
public class TestLogging {
private static final Logger logger = LogManager.getLogger(TestLogging.class);
@Test
public void testMethod() {
logger.info("Test case started.");
try {
// কিছু টেস্ট কোড
logger.debug("Executing some logic...");
// এখানে একটি কাল্পনিক ব্যতিক্রম
int result = 10 / 0;
} catch (Exception e) {
logger.error("Error occurred: ", e);
}
logger.info("Test case completed.");
}
}
এখানে:
logger.info- সাধারণ ইনফরমেশন লগ করতে ব্যবহৃত।logger.debug- ডিবাগ মেসেজগুলোর জন্য।logger.error- কোনো ত্রুটি (error) সনাক্ত হলে এটি লগ করবে।
TestNG এবং Log4j এর সুবিধা
- ডিবাগিং সহজ হয়: বিভিন্ন স্তরের লগিং (info, debug, error) সিস্টেমে সম্ভাব্য ত্রুটিগুলি শনাক্ত করতে সহায়ক।
- অপারেশন ট্র্যাকিং: বিভিন্ন অপারেশন বা টেস্ট কেসের কার্যক্রম মনিটর করা সহজ হয়।
- রিপোর্টিং: লগ ফাইলগুলির মাধ্যমে টেস্টের ফলাফল পর্যালোচনা এবং বিশ্লেষণ করা সম্ভব।
Log4j-এর সাথে TestNG ইন্টিগ্রেশন সফলভাবে সম্পন্ন হলে, আপনি আপনার টেস্টিং প্রক্রিয়ায় আরও কার্যকরী লগিং করতে পারবেন।
Log4j এবং SLF4J হল জনপ্রিয় লগিং ফ্রেমওয়ার্ক যা Java অ্যাপ্লিকেশনগুলির জন্য লগিং সুবিধা প্রদান করে। Log4j একটি নির্দিষ্ট ফ্রেমওয়ার্ক, যেখানে SLF4J (Simple Logging Facade for Java) একটি লগিং ফেসেড যা বিভিন্ন লগিং ফ্রেমওয়ার্কের জন্য একটি সাধারণ ইন্টারফেস সরবরাহ করে। TestNG-তে এই দুটি ব্যবহার করে টেস্ট রিপোর্টিং সহজ এবং কার্যকর করা যায়।
Log4j এবং SLF4J কী?
- Log4j: এটি একটি খুবই শক্তিশালী এবং কনফিগারেবল লগিং ফ্রেমওয়ার্ক যা আপনি আপনার অ্যাপ্লিকেশন বা টেস্টিং প্রক্রিয়ায় লগ ইনফরমেশন রেকর্ড করতে ব্যবহার করতে পারেন।
- SLF4J: এটি একটি ফেসেড, যা বিভিন্ন লগিং ফ্রেমওয়ার্কের জন্য ইন্টারফেস প্রদান করে। এটি আপনাকে কোনও একটি নির্দিষ্ট লগিং ফ্রেমওয়ার্কের সাথে সংযুক্ত না হয়ে সাধারণভাবে লগ ইনফরমেশন রেকর্ড করার সুবিধা দেয়।
Log4j এবং SLF4J ব্যবহার করার সুবিধা
- কাস্টমাইজড লগিং: বিভিন্ন স্তরের লগিং (INFO, ERROR, DEBUG) ব্যবহার করে টেস্টিংয়ের বিভিন্ন স্তরের তথ্য সংগ্রহ করা।
- পারফরম্যান্স ট্র্যাকিং: লগিং ব্যবহার করে আপনি টেস্ট এক্সিকিউশনের সময় এবং অন্যান্য কর্মক্ষমতা মেট্রিকগুলি ট্র্যাক করতে পারেন।
- সহজ রিপোর্টিং: টেস্ট রান করার সময় বা পরবর্তী সময়ে ডিবাগিং বা রিপোর্টিং করার জন্য লগ ফাইল ব্যবহার করা।
TestNG-এ Log4j এবং SLF4J কনফিগারেশন
নিচে TestNG-এ Log4j এবং SLF4J ব্যবহার করে টেস্ট রিপোর্টিং কনফিগার করার একটি সহজ উদাহরণ দেওয়া হলো।
ধাপ ১: প্রজেক্টে প্রয়োজনীয় লাইব্রেরি যোগ করুন
প্রথমে আপনার প্রজেক্টে Log4j এবং SLF4J লাইব্রেরি যুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তাহলে pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন।
Log4j এবং SLF4J Maven ডিপেনডেন্সি:
<dependencies>
<!-- SLF4J API -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<!-- SLF4J binding for Log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.32</version>
</dependency>
<!-- Log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
ধাপ ২: Log4j কনফিগারেশন ফাইল তৈরি করুন
এখন Log4j এর কনফিগারেশন ফাইল তৈরি করতে হবে। এই ফাইলটি log4j.properties নামে হতে পারে এবং এটি আপনার প্রজেক্টের resources ফোল্ডারে রাখতে হবে।
log4j.properties ফাইল উদাহরণ:
# Set the root logger level to INFO and its only appender to CONSOLE
log4j.rootLogger=INFO, CONSOLE
# Set the CONSOLE appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] %c{1} - %m%n
এটি INFO লেভেল এবং তার উপরে সমস্ত লগগুলো কনসোলে প্রদর্শন করবে।
ধাপ ৩: SLF4J Logger ব্যবহার করা
এখন আপনার টেস্ট ক্লাসে SLF4J-কে ব্যবহার করে লগিং করতে পারবেন। নিচে একটি উদাহরণ দেয়া হলো।
উদাহরণ: TestNG টেস্ট ক্লাসে Log4j এবং SLF4J ব্যবহার
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;
public class TestNGWithLogging {
// Logger তৈরি
private static final Logger logger = LoggerFactory.getLogger(TestNGWithLogging.class);
@Test
public void testLogin() {
logger.info("Login Test Started");
try {
// সিমুলেটেড লজিক
int result = 10 / 2;
logger.debug("Login test logic executed successfully: {}", result);
} catch (Exception e) {
logger.error("Error in login test: ", e);
}
logger.info("Login Test Finished");
}
@Test
public void testDashboard() {
logger.info("Dashboard Test Started");
try {
// সিমুলেটেড লজিক
String dashboardData = "User Dashboard";
logger.debug("Dashboard test logic executed successfully: {}", dashboardData);
} catch (Exception e) {
logger.error("Error in dashboard test: ", e);
}
logger.info("Dashboard Test Finished");
}
}
এখানে:
- info(): সাধারণ তথ্য লগ করার জন্য।
- debug(): ডিবাগging জন্য বিস্তারিত তথ্য লগ করার জন্য।
- error(): ত্রুটি (error) লগ করার জন্য ব্যবহৃত হয়।
ধাপ ৪: টেস্ট রান করা
TestNG-এ টেস্ট রান করার সময়, Log4j এবং SLF4J আপনার লগ তথ্য কনসোলে বা ফাইলের মধ্যে রেকর্ড করবে। আপনি log4j.properties ফাইল কনফিগারেশন অনুযায়ী লগ আউটপুট পেতে পারবেন।
সারাংশ
Log4j এবং SLF4J এর মাধ্যমে TestNG-তে লগিং করা সহজ এবং কার্যকর। এই ফিচারটি বিশেষত তখনই গুরুত্বপূর্ণ যখন আপনি টেস্ট রান করার সময় ডিবাগিং বা রিপোর্টিং করতে চান। এর মাধ্যমে আপনি টেস্টিং কার্যপ্রণালী সম্পর্কে বিস্তারিত তথ্য পেতে পারেন, যা উন্নত সমস্যা সমাধান এবং টেস্টের কার্যক্ষমতা বিশ্লেষণে সহায়ক।
TestNG Logging Integration টেস্টিং প্রক্রিয়ার মধ্যে লগিং ব্যবহারের একটি গুরুত্বপূর্ণ অংশ। লগিং সিস্টেমে টেস্ট কেসের ফলাফল, এর কার্যক্রম, এবং যেকোনো সমস্যা বা ব্যতিক্রম (exception) সম্পর্কে তথ্য সংগ্রহ করা হয়। TestNG নিজেই Log4j বা SLF4J এর মতো লগিং লাইব্রেরি ইন্টিগ্রেট করতে সাহায্য করে, যা আপনার টেস্ট ফলাফল বিশ্লেষণ এবং ডিবাগিং করতে সহায়ক।
লগিং কী এবং এর গুরুত্ব
লগিং হলো কোডের কার্যক্রমের রেকর্ড রাখা, যা টেস্ট চলাকালীন সময়ে বিভিন্ন তথ্য যেমন, সাফল্য, ব্যর্থতা, বা যে কোনো ত্রুটি রেকর্ড করে। এটি ডেভেলপার এবং টেস্টারের জন্য খুবই উপকারী, কারণ এটি টেস্টিং প্রক্রিয়া সম্পন্ন হওয়ার পর আপনার সমস্যার দ্রুত সমাধান করতে সহায়ক।
TestNG এর সাথে লগিং ইন্টিগ্রেশন
টেস্টএনজি লগিং এর জন্য সাধারণত Log4j বা java.util.logging ব্যবহার করা হয়। এখানে আমরা Log4j 2 এর সাথে TestNG ইন্টিগ্রেশন দেখবো।
প্রয়োজনীয় লাইব্রেরি
TestNG এবং Log4j2 ইন্টিগ্রেট করার জন্য প্রথমে আপনাকে কিছু লাইব্রেরি যোগ করতে হবে। এই লাইব্রেরিগুলি আপনি Maven বা Gradle ব্যবহার করে যোগ করতে পারেন।
Maven ব্যবহারকারীদের জন্য pom.xml এ নির্ভরতাগুলি:
<dependencies>
<!-- TestNG dependency -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.4.0</version>
<scope>test</scope>
</dependency>
<!-- Log4j2 dependency -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
</dependencies>
Log4j2 কনফিগারেশন
Log4j2-এর কনফিগারেশন একটি log4j2.xml ফাইলে করা হয়, যা আপনার প্রজেক্টের src/main/resources/ ফোল্ডারে রাখতে হবে।
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</Pattern>
</PatternLayout>
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
এই কনফিগারেশনটি আপনার কনসোলে লগ মেসেজগুলি প্রিন্ট করবে, এবং আপনি লগের স্তর যেমন debug, info, warn, error ইত্যাদি নির্ধারণ করতে পারবেন।
TestNG লগিং উদাহরণ
এখন আসুন আমরা TestNG টেস্ট ক্লাসে Log4j2 লগিং ইন্টিগ্রেট করি। নিচে একটি উদাহরণ দেওয়া হলো:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.annotations.Test;
public class LoggingExampleTest {
// Log4j2 logger তৈরি
private static final Logger logger = LogManager.getLogger(LoggingExampleTest.class);
@Test
public void testSuccess() {
logger.info("Test started: testSuccess");
System.out.println("Executing successful test.");
logger.info("Test completed: testSuccess");
}
@Test
public void testFailure() {
logger.info("Test started: testFailure");
try {
// এই টেস্টটি ইচ্ছাকৃতভাবে ব্যর্থ হবে
int result = 1 / 0;
} catch (Exception e) {
logger.error("Test failed due to an exception: " + e.getMessage(), e);
}
logger.info("Test completed: testFailure");
}
}
কোড বিশ্লেষণ:
- Logger Initialization:
LogManager.getLogger()ব্যবহার করে একটি logger তৈরি করা হয়, যা আমাদের টেস্ট ক্লাসের জন্য লগ রেকর্ড করবে। - Logging Levels:
logger.info(): সাধারণ তথ্য প্রদান করে।logger.error(): কোনো সমস্যা বা ব্যতিক্রম (exception) ঘটলে ত্রুটি লগ করে।
- Log Messages:
আমরা টেস্ট শুরু হওয়ার এবং শেষ হওয়ার সময় লগ মেসেজ প্রিন্ট করি, যাতে টেস্টের অবস্থা সহজে বুঝতে পারি।
টেস্ট আউটপুট
যখন আপনি উপরের কোডটি চালাবেন, কনসোলে নিচের আউটপুট দেখতে পারবেন:
2024-12-18 14:23:45 [main] INFO LoggingExampleTest - Test started: testSuccess
Executing successful test.
2024-12-18 14:23:45 [main] INFO LoggingExampleTest - Test completed: testSuccess
2024-12-18 14:23:46 [main] INFO LoggingExampleTest - Test started: testFailure
2024-12-18 14:23:46 [main] ERROR LoggingExampleTest - Test failed due to an exception: / by zero
java.lang.ArithmeticException: / by zero
at LoggingExampleTest.testFailure(LoggingExampleTest.java:18)
2024-12-18 14:23:46 [main] INFO LoggingExampleTest - Test completed: testFailure
এই আউটপুটে আপনি দুটি মেসেজ দেখতে পাবেন:
- testSuccess টেস্টটি সফলভাবে সম্পন্ন হয়েছে।
- testFailure টেস্টটি ব্যর্থ হয়েছে এবং ব্যতিক্রমের বিস্তারিত লগ করা হয়েছে।
সারাংশ
TestNG এবং Log4j2 ইন্টিগ্রেশন টেস্টিং কার্যক্রমে কার্যকরী লগিংয়ের মাধ্যমে টেস্ট ফলাফল বিশ্লেষণ এবং সমস্যা সমাধান প্রক্রিয়া সহজ করে তোলে। এই উদাহরণে আমরা দেখেছি কিভাবে TestNG টেস্ট কেসে Log4j2 ব্যবহার করে লগ মেসেজ রেকর্ড করতে হয়, যা টেস্টের স্থিতি এবং সমস্যা সনাক্ত করতে সাহায্য করে।
Read more