Override TestNG Test name using dataprovider but the @DataProvider is present in a different Class

21 Views Asked by At

Below is TestStatusListener class which implements ITestListener, where I am using it in onTestStart method calling getTestName() but couldn`t see test names printing. Can someone help.

public class TestStatusListener extends API implements ITestListener,ITest {

    ExtentTest test;
    ExtentReports extent = ExtentManager.getReporter();
    ThreadLocal<ExtentTest> threadSafe = new ThreadLocal<>();
    private ThreadLocal<String> testName = new ThreadLocal<>();

    @Test(dataProvider = "tokenTypes", dataProviderClass = API.class)
    @org.testng.annotations.BeforeMethod
    public void BeforeMethod(Method method, TokenType testData) {
        testName.set(method.getName() + "_" + testData);
    }

    @Override
    public String getTestName() {
        return testName.get();
    }
    
    ///
    
    public void onTestStart(ITestResult iTestResult) {
        test = extent.createTest(iTestResult.getMethod().getMethodName()).assignAuthor("Core Automation Team").assignCategory("Regression").assignDevice("Window 10");
        threadSafe.set(test);
        System.out.println("Initializing test method " + getTestMethodName(iTestResult) + getTestName() + " start");
    }
}
0

There are 0 best solutions below