package organized.chaos;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
@Listeners({ MyMethodListener.class, MyConfigMethodListener.class })
public class MySampleTest {
@Test
public void f() {
System.out.println("Hello world");
}
@BeforeClass
public void beforeClass() {
throw new RuntimeException("Hi am an exception");
}
}
package organized.chaos;
import org.testng.IInvokedMethod;
import org.testng.IInvokedMethodListener;
import org.testng.ITestResult;
public class MyMethodListener implements IInvokedMethodListener {
@Override
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
}
@Override
public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
if (testResult.getThrowable() != null) {
System.out.println(":::: " + testResult.getThrowable().getLocalizedMessage());
}
}
}
package organized.chaos;
import org.testng.IConfigurationListener;
import org.testng.ITestResult;
public class MyConfigMethodListener implements IConfigurationListener {
@Override
public void onConfigurationSuccess(ITestResult itr) {
}
@Override
public void onConfigurationFailure(ITestResult itr) {
System.out.println(">>>> " + itr.getThrowable().getLocalizedMessage());
}
@Override
public void onConfigurationSkip(ITestResult itr) {
}
}
[TestNG] Running:
/private/var/folders/47/hs5x_y397rsf8vbfqmqrmngm0000gn/T/testng-eclipse-285803179/testng-customsuite.xml
:::: Hi am an exception
>>>> Hi am an exception
FAILED CONFIGURATION: @BeforeClass beforeClass
java.lang.RuntimeException: Hi am an exception
at organized.chaos.MySampleTest.beforeClass(MySampleTest.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:335)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:330)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
SKIPPED: f