Best Testng code snippet using org.testng.Interface ITestResult.getInstance
Source:RulesListener.java
...17 public void apply(T arg);18 }19 @Override20 public void run(IHookCallBack callBack, ITestResult testResult) {21 List<IHookable> hookables = getRules(testResult.getInstance(),22 IHookable.class);23 if (hookables.isEmpty()) {24 callBack.runTestMethod(testResult);25 } else {26 IHookable hookable = hookables.get(0);27 hookables.remove(0);28 for (IHookable iHookable : hookables) {29 hookable = compose(hookable, iHookable);30 }31 hookable.run(callBack, testResult);32 }33 }34 private IHookable compose(final IHookable first, final IHookable second) {35 return new IHookable() {36 @Override37 public void run(final IHookCallBack callBack,38 final ITestResult testResult) {39 first.run(new IHookCallBack() {40 @Override41 public void runTestMethod(ITestResult testResult) {42 second.run(callBack, testResult);43 }44 @Override45 public Object[] getParameters() {46 return callBack.getParameters();47 }48 }, testResult);49 }50 };51 }52 private <T> List<T> getRules(Object object, Class<T> type) {53 List<T> rules = new ArrayList<T>();54 Field[] declaredFields = object.getClass().getFields();55 for (Field field : declaredFields) {56 TestNGRule annotation = field.getAnnotation(TestNGRule.class);57 if (annotation != null) {58 try {59 Object fieldContent = field.get(object);60 if (type.isAssignableFrom(field.getType())) {61 @SuppressWarnings("unchecked")62 T rule = (T) fieldContent;63 rules.add(rule);64 }65 } catch (Exception e) {66 e.printStackTrace();67 }68 }69 }70 return rules;71 }72 @Override73 public void onTestStart(final ITestResult result) {74 executeRulesForInstance(new Function0<ITestListener>() {75 @Override76 public void apply(ITestListener listener) {77 listener.onTestStart(result);78 }79 }, result.getInstance());80 }81 @Override82 public void onTestSuccess(final ITestResult result) {83 executeRulesForInstance(new Function0<ITestListener>() {84 @Override85 public void apply(ITestListener listener) {86 listener.onTestSuccess(result);87 }88 }, result.getInstance());89 }90 @Override91 public void onTestFailure(final ITestResult result) {92 executeRulesForInstance(new Function0<ITestListener>() {93 @Override94 public void apply(ITestListener listener) {95 listener.onTestFailure(result);96 }97 }, result.getInstance());98 }99 @Override100 public void onTestSkipped(final ITestResult result) {101 executeRulesForInstance(new Function0<ITestListener>() {102 @Override103 public void apply(ITestListener listener) {104 listener.onTestSkipped(result);105 }106 }, result.getInstance());107 }108 @Override109 public void onTestFailedButWithinSuccessPercentage(final ITestResult result) {110 executeRulesForInstance(new Function0<ITestListener>() {111 @Override112 public void apply(ITestListener listener) {113 listener.onTestFailedButWithinSuccessPercentage(result);114 }115 }, result.getInstance());116 }117 @Override118 public void onStart(final ITestContext context) {119 executeRulesForContext(context,120 new Function0<ITestListener>() {121 @Override122 public void apply(ITestListener listener) {123 listener.onStart(context);124 }125 });126 }127 @Override128 public void onFinish(final ITestContext context) {129 executeRulesForContext(context, new Function0<ITestListener>() {130 @Override131 public void apply(ITestListener listener) {132 listener.onFinish(context);133 }134 });135 }136 private void executeRulesForContext(ITestContext context,137 Function0<ITestListener> action) {138 ITestNGMethod[] allTestMethods = context.getAllTestMethods();139 Set<Object> testInstances = new HashSet<Object>();140 for (ITestNGMethod iTestNGMethod : allTestMethods) {141 testInstances.addAll(Arrays.asList(iTestNGMethod.getInstances()));142 }143 for (Object instance : testInstances) {144 executeRulesForInstance(action, instance);145 }146 }147 private void executeRulesForInstance(Function0<ITestListener> action,148 Object allInst) {149 List<ITestListener> hookables = getRules(allInst, ITestListener.class);150 for (ITestListener listener : hookables) {151 action.apply(listener);152 }153 }154}...
Source:TestCaseUtility.java
...69 }70 // If we are here, then it means it is a data driven test but71 // factories may be involved. So we need to check if the test class72 // implements IECase interface73 Object testClassInstance = result.getMethod().getInstance();74 if (testClassInstance instanceof IECase) {75 attribute = ((IECase) testClassInstance).geteCase();76 }77 }78 result.setAttribute("eCaseID", attribute);79// // logger.exiting();80 }81 /**82 * This method essentially helps the CatPaw Framework identify if a particular method that makes use of83 * DataProvider is intending to use CatPaw Framework comprehensible Data Driven Approach or not.84 * 85 * @param result86 * - A result object of type {@link ITestResult}87 * @return - A boolean that indicates of the result represents a method that is using CatPaw Framework defined Data88 * Driven approach or not.89 */90 private static boolean isCatPawDataDriven(final ITestResult result) {91 // logger.entering(result);92 boolean isDataDriven = false;93 if (result.getParameters().length == 1) {94 if (IECase.class.isAssignableFrom(result.getParameters()[0].getClass())) {95 // logger.exiting(true);96 return true;97 }98 }99 //Assuming it wasn't a regular data driven, lets check if Factories were used.100 Object testClassInstance = result.getMethod().getInstance();101 if (testClassInstance instanceof IECase){102 isDataDriven = true;103 }104 // logger.exiting(isDataDriven);105 return isDataDriven;106 }107 /**108 * This method iterates through a {@link IResultMap} and returns a list of {@link ITestResult}109 * 110 * @param results111 * - an object of type {@link IResultMap}112 * @return - a list of test results of type {@link ITestResult}113 */114 public static List<ITestResult> fetchTests(IResultMap results) {...
Source:TestListener.java
...74 * log.debug("Entering TestListener.onTestFailure method " +75 * getTestMethodName(iTestResult) + " failed");76 * 77 * // Get driver from BaseTest and assign to local webdriver variable. Object78 * testClass = iTestResult.getInstance(); WebDriver webDriver = ((WebTest)79 * testClass).getDriver();80 * 81 * // Take base64Screenshot screenshot. String base64Screenshot =82 * "data:image/png;base64," + ((TakesScreenshot)83 * webDriver).getScreenshotAs(OutputType.BASE64);84 * 85 * // Extentreports log and screenshot operations for failed tests.86 * ExtentTestManager.getTest().log(LogStatus.FAIL, "Test Failed",87 * ExtentTestManager.getTest().addBase64ScreenShot(base64Screenshot));88 */89 }90 /* (non-Javadoc)91 * @see org.testng.ITestListener#onTestSkipped(org.testng.ITestResult)92 */...
Source:TestListenerFailPass.java
...59 try {60 FileUtils.copyFile(scrFile, new File(destDir + "/" + destFile));61 } catch (IOException e) {62 e.printStackTrace();63 System.out.println("Could not take screenshot on failure"+ tr.getInstance());//getInstanceName =package+className64 log.debug("Could not take screenshot on failure"+ tr.getInstance());//getInstanceName =package+className65 }66 //Reporter.setEscapeHtml(false);67 Reporter.log("Saved <a href=../screenshot/FAIL/" + destFile + ">Screenshot</a>");68 }69 @Override70 public void onTestSkipped(ITestResult tr) {71 log("Skipped test");72 Reporter.log("Skipped test to avoid test failure due to dependency");73 }74 @Override75 public void onTestSuccess(ITestResult tr) {76 //log("Pass");77 driver = WebDriverManager.getDriverInstance();78 File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);79 DateFormat dateFormat = new SimpleDateFormat("dd_MMM_yyyy__hh_mm_ssaa");80 String destDir = System.getProperty("user.dir")+passPath;81 new File(destDir).mkdirs();82 String destFile = dateFormat.format(new Date()) + ".png";83 try {84 FileUtils.copyFile(scrFile, new File(destDir + "/" + destFile));85 } catch (IOException e) {86 e.printStackTrace();87 System.out.println("Could not take screenshot on success"+ tr.getInstance());//getInstanceName =package+className88 log.debug("Could not take screenshot on success"+ tr.getInstance());//getInstanceName =package+className89 }90 //Reporter.setEscapeHtml(false);91 Reporter.log("Saved <a href=../screenshot/PASS/" + destFile + ">Screenshot</a>");92 }93 private void log(String string) {94 System.out.print(string);95 if (++m_count % 40 == 0) {96 System.out.println("");97 }98 }99 100 101 public void onFinish(ISuite suite)102 every time testng finished running a testsuite it should create a folder - label it with suite name and date of run...
Source:AllureListener.java
...23 // 1ãä¿è¯@Test注解æ 注çæµè¯æ¹æ³è½å¤æ£å¸¸è¿è¡24 iHookCallBack.runTestMethod(iTestResult);25 // 2ãå¤æç¨ä¾ç»ææ¯å¦æ£å¸¸26 if (iTestResult.getThrowable() != null) {27 // iTestResultåæ°æä¾äºAPI getInstance è·åå½åæµè¯ç±»çå®ä¾ï¼å¯¹è±¡ï¼28 BaseTest baseTest = (BaseTest) iTestResult.getInstance();29 // æ ¹æ®baseTestå¾å°driver30 WebDriver driver = baseTest.driver;31 // æªå¾å¹¶ææªå¾åµå
¥å°Allureæ¥è¡¨ä¸32 TakesScreenshot takesScreenshot = (TakesScreenshot) driver;33 // åæ°OutputTypeï¼æªå¾çç±»å34 byte[] screenShot = takesScreenshot.getScreenshotAs(OutputType.BYTES);35 saveScreenshot(screenShot);36 }37 }38 // @Attachment é件39 // valueåæ°æ¯ä¸ºä½ çé件çåå typeåæ°æ¯ä¸ºä½ çé件类å40 @Attachment(value = "Java screenshot", type = "image/png")41 public byte[] saveScreenshot(byte[] screenShot) {42 return screenShot;...
Source:TestReportListener.java
...29 /*On success, screenshot is added just for additional reference in future*/30 @Override31 public void onTestSuccess(ITestResult iTestResult) {32 LOGGER.info(getMethodNameUnderExecution(iTestResult) + " test is succeeded.");33 Object testClass = iTestResult.getInstance();34 WebDriver driver = ((TestCore) testClass).getDriver();35 saveScreenshotPNG(driver);36 }37 @Override38 public void onTestFailure(ITestResult iTestResult) {39 LOGGER.info(getMethodNameUnderExecution(iTestResult) + " test is failed.");40 Object testClass = iTestResult.getInstance();41 WebDriver driver = ((TestCore) testClass).getDriver();42 saveScreenshotPNG(driver);43 }44 @Override45 public void onTestSkipped(ITestResult iTestResult) {46 Method method = iTestResult.getMethod().getConstructorOrMethod().getMethod();47 if (method != null && method.isAnnotationPresent(Issues.class)48 && Arrays.asList(method.getAnnotation(Issues.class).value()).isEmpty()) {49 ArrayList<String> issues = new ArrayList<>();50 Arrays.asList(method.getAnnotation(Issues.class).value()).forEach(issue -> issues.add(issue.value()));51 throw new SkipException(String.format("Execution Condition failure::: %s ::: Skipping this test", issues));52 }53 }54}...
Source:Listeners.java
...26 String testMethodName = result.getMethod().getMethodName();27 try {28 Field f = result.getTestClass().getRealClass().getDeclaredField("driver");29 f.setAccessible(true);30 driver = (WebDriver) f.get(result.getInstance());31 objectOfThreadLocal.get().addScreenCaptureFromPath(getScreenShotPath(testMethodName, driver),32 result.getMethod().getMethodName());33 } catch (Exception e) {34 System.out.println(e);35 }36 }37 /*38 * This is the method of ITestListener interface which needs to be39 * implemented40 */41 public void onFinish(ITestContext context) {42 // TODO Auto-generated method stub43 objectOfExtentReports.flush();44 }...
Source:GenerateReport.java
...33 // fetching the driver object from failed test case class34 WebDriver driver = null;35 threadTestHandler.get().fail(result.getThrowable());36 try {37 driver = (WebDriver) result.getTestClass().getRealClass().getField("driver").get(result.getInstance());38 } catch (Exception e) {39 // TODO Auto-generated catch block40 System.out.println(driver);41 e.printStackTrace();42 }43 String testMethodName = result.getMethod().getMethodName();44 try {45 threadTestHandler.get().addScreenCaptureFromPath(getScreenShot(testMethodName, driver), testMethodName);46 } catch (IOException e) {47 // TODO Auto-generated catch block48 e.printStackTrace();49 } 50 51 }...
getInstance
Using AI Code Generation
1import org.testng.ITestResult;2public class TestNGITestResult {3 public static void main(String[] args) {4 ITestResult result = ITestResult.getInstance();5 System.out.println(result);6 }7}
getInstance
Using AI Code Generation
1public class TestNGListener implements ITestListener {2 private static final Logger LOGGER = LogManager.getLogger(TestNGListener.class);3 private static final String FILE_NAME = "testng-results.html";4 private static final String FILE_PATH = "target/surefire-reports/";5 private static final String FILE_PATH_AND_NAME = FILE_PATH + FILE_NAME;6 private static final String FILE_PATH_AND_NAME_2 = FILE_PATH + "testng-results2.html";7 private static final String FILE_PATH_AND_NAME_3 = FILE_PATH + "testng-results3.html";8 private static final String FILE_PATH_AND_NAME_4 = FILE_PATH + "testng-results4.html";9 private static final String FILE_PATH_AND_NAME_5 = FILE_PATH + "testng-results5.html";10 private static final String FILE_PATH_AND_NAME_6 = FILE_PATH + "testng-results6.html";11 private static final String FILE_PATH_AND_NAME_7 = FILE_PATH + "testng-results7.html";12 private static final String FILE_PATH_AND_NAME_8 = FILE_PATH + "testng-results8.html";13 private static final String FILE_PATH_AND_NAME_9 = FILE_PATH + "testng-results9.html";14 private static final String FILE_PATH_AND_NAME_10 = FILE_PATH + "testng-results10.html";15 private static final String FILE_PATH_AND_NAME_11 = FILE_PATH + "testng-results11.html";16 private static final String FILE_PATH_AND_NAME_12 = FILE_PATH + "testng-results12.html";17 private static final String FILE_PATH_AND_NAME_13 = FILE_PATH + "testng-results13.html";18 private static final String FILE_PATH_AND_NAME_14 = FILE_PATH + "testng-results14.html";19 private static final String FILE_PATH_AND_NAME_15 = FILE_PATH + "testng-results15.html";20 private static final String FILE_PATH_AND_NAME_16 = FILE_PATH + "testng-results16.html";21 private static final String FILE_PATH_AND_NAME_17 = FILE_PATH + "testng-results17.html";22 private static final String FILE_PATH_AND_NAME_18 = FILE_PATH + "testng-results18.html";23 private static final String FILE_PATH_AND_NAME_19 = FILE_PATH + "testng-results19.html";24 private static final String FILE_PATH_AND_NAME_20 = FILE_PATH + "testng-results20.html";
TestNG is a Java-based open-source framework for test automation that includes various test types, such as unit testing, functional testing, E2E testing, etc. TestNG is in many ways similar to JUnit and NUnit. But in contrast to its competitors, its extensive features make it a lot more reliable framework. One of the major reasons for its popularity is its ability to structure tests and improve the scripts' readability and maintainability. Another reason can be the important characteristics like the convenience of using multiple annotations, reliance, and priority that make this framework popular among developers and testers for test design. You can refer to the TestNG tutorial to learn why you should choose the TestNG framework.
You can push your abilities to do automated testing using TestNG and advance your career by earning a TestNG certification. Check out our TestNG certification.
Watch this complete tutorial to learn how you can leverage the capabilities of the TestNG framework for Selenium automation testing.
Get 100 minutes of automation test minutes FREE!!