public static void dumpInvokedMethodsInfoToConsole(Collection<IInvokedMethod> iInvokedMethods, int currentVerbosity) { if (currentVerbosity < 3) { return; } System.out.println("===== Invoked methods"); for (IInvokedMethod im : iInvokedMethods) { if (im.isTestMethod()) { System.out.print(" "); } else if (im.isConfigurationMethod()) { System.out.print(" "); } else { continue; } System.out.println("" + im); } System.out.println("====="); }
public static void dumpInvokedMethodsInfoToConsole( Collection<IInvokedMethod> iInvokedMethods, int currentVerbosity) { if (currentVerbosity < 3) { return; } System.out.println("===== Invoked methods"); for (IInvokedMethod im : iInvokedMethods) { if (im.isTestMethod()) { System.out.print(" "); } else if (im.isConfigurationMethod()) { System.out.print(" "); } else { continue; } System.out.println("" + im); } System.out.println("====="); }
@Override public void beforeInvocation(IInvokedMethod method, ITestResult testResult) { if (!(skipConfiguration && method.isConfigurationMethod())) { invokedMethodNames.add(getName(testResult)); } testInstances.add(testResult.getInstance()); }
private void log(String prefix, IInvokedMethod method, ITestResult testResult) { String msg = prefix + "_" + typeOfMethod(method); msg += method.getTestMethod().getMethodName() + parameters(testResult); if (method.isConfigurationMethod()) { configMsgs.add(msg); } else { messages.add(msg); } }
/** * Fix for: * https://github.com/juherr/testng-googlecode/issues/7 * https://github.com/juherr/testng-googlecode/issues/86 * https://github.com/cbeust/testng/issues/93 */ @Test public void sameMethodInvokedMultipleTimesShouldHaveDifferentTimeStamps() { TestNG tng = create(Sample.class); InvokedMethodListener listener = new InvokedMethodListener(); tng.addListener((ITestNGListener) listener); tng.run(); List<IInvokedMethod> m = listener.getInvokedMethods(); IInvokedMethod beforeSuite = m.get(0); Assert.assertFalse(beforeSuite.getTestMethod().isAfterMethodConfiguration()); Assert.assertTrue(beforeSuite.isConfigurationMethod()); IInvokedMethod after1 = m.get(2); Assert.assertTrue(after1.getTestMethod().isAfterMethodConfiguration()); Assert.assertTrue(after1.isConfigurationMethod()); IInvokedMethod after2 = m.get(4); Assert.assertTrue(after2.getTestMethod().isAfterMethodConfiguration()); Assert.assertTrue(after2.isConfigurationMethod()); Assert.assertTrue(after1.getDate() != after2.getDate()); }
@Override public void afterInvocation(IInvokedMethod method, ITestResult testResult) { List<String> methodNames = mapping.computeIfAbsent(testResult.getMethod().getRealClass(), k -> Lists.newArrayList()); methodNames.add(method.getTestMethod().getMethodName()); String name = getName(testResult); switch (testResult.getStatus()) { case ITestResult.FAILURE: if (!(skipConfiguration && method.isConfigurationMethod())) { failedMethodNames.add(name); } break; case ITestResult.SKIP: if (!(skipConfiguration && method.isConfigurationMethod())) { if (wantSkippedMethodAfterInvocation) { skippedAfterInvocationMethodNames.add(name); } } break; case ITestResult.SUCCESS: if (!(skipConfiguration && method.isConfigurationMethod())) { succeedMethodNames.add(name); } break; default: throw new AssertionError("Unexpected value: " + testResult.getStatus()); } }
@Override public void afterInvocation(IInvokedMethod method, ITestResult testResult) { String methodName = method.getTestMethod().getMethodName(); if (method.isTestMethod()) { testMethods.add(methodName); } if (method.isConfigurationMethod()) { configurationMethods.add(methodName); } if (method.getTestMethod().isTest()) { testMethodsFromTM.add(methodName); } if (method.getTestMethod().isBeforeMethodConfiguration() || method.getTestMethod().isAfterMethodConfiguration() || method.getTestMethod().isBeforeTestConfiguration() || method.getTestMethod().isAfterTestConfiguration() || method.getTestMethod().isBeforeClassConfiguration() || method.getTestMethod().isAfterClassConfiguration() || method.getTestMethod().isBeforeSuiteConfiguration() || method.getTestMethod().isAfterSuiteConfiguration()) { configurationMethodsFromTM.add(methodName); } } }
private void reinitCaptors(IInvokedMethod method, ITestResult testResult) { if (method.isConfigurationMethod()) { return; } initializeCaptors(testResult.getInstance()); }
@Override public void beforeInvocation(IInvokedMethod method, ITestResult testResult, ITestContext context) { TestLogging.setCurrentTestResult(testResult); // issue #94: add ability to request thread context from a method annotated with @BeforeMethod // for each beforemethod, store the current context so that it can be edited by the configuration method if (method.isConfigurationMethod()) { configureThreadContextBeforeInvoke(method, testResult, context); } if (method.isTestMethod()) { executeBeforeTestMethod(method, testResult, context); } }
/** * Do after configuration or method call * issue #150: intercept any exception so that \@AfterMethod gets called even if this method fails (see {@link Invoker.class.invokeMethod()}) */ @Override public void afterInvocation(IInvokedMethod method, ITestResult testResult, ITestContext context) { Reporter.setCurrentTestResult(testResult); try { if (method.isConfigurationMethod()) { configureThreadContextAfterInvoke(method, testResult, context); } if (method.isTestMethod()) { executeAfterTestMethod(method, testResult, context); } } catch (Exception e) { logger.error(String.format("error while finishing invocation of %s : %s", method.getTestMethod().getQualifiedName(), e.getMessage())); } }
/** * Reset all the arguments captors of the test instance. * * @param testMethod the invoked test method. * @param testResult metadata about the class under test. */ private void resetCaptors(IInvokedMethod testMethod, ITestResult testResult) { if (!testMethod.isConfigurationMethod()) { @SuppressWarnings("unchecked") List<InstanceField> instanceFields = Fields .allDeclaredFieldsOf(testResult.getInstance()) .filter(annotatedBy(Captor.class)) .instanceFields(); for (InstanceField instanceField : instanceFields) { Captor captor = instanceField.annotation(Captor.class); Field field = instanceField.jdkField(); instanceField.set(new CaptorAnnotationProcessor().process(captor, field)); } } }