package ri.customListener;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.testng.Reporter;
import ri.testBase.TestBase;
public class listener extends TestBase implements ITestListener {
private long time;
@Override
public void onFinish(ITestContext itr) {
// TODO Auto-generated method stub
long time = System.currentTimeMillis();
Reporter.log(itr.getClass() + "--test finished");
}
@Override
public void onStart(ITestContext itr) {
// TODO Auto-generated method stub
Reporter.log(itr.getClass() + "--test started");
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult itr) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailure(ITestResult result) {
if (!result.isSuccess()) {
String failureImageFileName = new SimpleDateFormat(
"MM-dd-yyyy_HH-ss").format(new GregorianCalendar()
.getTime())
+ ".png";
File scrFile = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(scrFile, new File(failureImageFileName));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String userDirector = System.getProperty("user.dir") + "/";
Reporter.log("<a href=\"" + userDirector + failureImageFileName
+ "\"><img src=\"file:///" + userDirector
+ failureImageFileName + "\" alt=\"\""
+ "height='100' width='100'/> " + "<br />");
Reporter.setCurrentTestResult(null);
}
}
@Override
public void onTestSkipped(ITestResult itr) {
// TODO Auto-generated method stub
}
@Override
public void onTestStart(ITestResult itr) {
// TODO Auto-generated method stub
}
@Override
public void onTestSuccess(ITestResult itr) {
// TODO Auto-generated method stub
}
}
Below is Test NG suit file configuration
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test suite">
<!-- Default suite -->
<listeners>
<listener class-name="ri.customListener.listener" />
</listeners>
<test name="Regression test" verbose="2">
<classes>
<class name="ri.testCases.LoginTest" />
</classes>
</test>
<!-- Default test -->
</suite>

No comments:
Post a Comment