Here is sample base test and sample test.
BaseTest.java
package test;
import java.lang.reflect.Method;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeMethod;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
public class BaseTest extends TestListenerAdapter {
public ExtentTest testReporter;
@BeforeMethod
public void beforeMethod(Method caller) {
ExtentTestManager.startTest(caller.getName(), "This is a simple test.");
}
@AfterMethod
public void afterMethod(ITestResult result) {
if (result.isSuccess()) {
ExtentTestManager.getTest().log(LogStatus.PASS, "Test passed");
}
else if (result.getStatus() == ITestResult.FAILURE) {
ExtentTestManager.getTest().log(LogStatus.FAIL, "Test failed");
}
else if (result.getStatus() == ITestResult.SKIP) {
ExtentTestManager.getTest().log(LogStatus.SKIP, "Test skipped");
}
ExtentTestManager.endTest();
ExtentManager.getInstance().flush();
}
@AfterSuite
public void afterSuite() {
ExtentManager.getInstance().flush();
}
}
SampleTest.java
package test;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
public class SampleTest extends BaseTest {
@Test
public void testApp(){
//testReporter.assignCategory("Smoke");
AssertJUnit.assertTrue(false);
}
@Test
public void testApp1(){
AssertJUnit.assertTrue(true);
}
@Test
public void testApp2(){
AssertJUnit.assertTrue(false);
}
@Test
public void testApp3(){
AssertJUnit.assertTrue(true);
}
}
These executes in parallel. Let me know if you need more informations.