Wednesday 11 March 2020

TestNG: Skip test cases

If a test method throws ‘SkipException’, then the method will be considered a skip or a failure according to the return value of isSkip() method.

 SkipTestDemo.java
package com.sample.app.tests;

import org.testng.SkipException;
import org.testng.annotations.Test;

public class SkipTestDemo {

  @Test
  public void a() {
    System.out.println("Going to throw skip exception");
    throw new SkipException("Skipping this test from execution");
  }
  
  @Test
  public void b() {
    System.out.println("I am in b");
  }
}

Run SkipTestDemo.java, you will see below messages in console.
[RemoteTestNG] detected TestNG version 7.0.0
Going to throw skip exception
I am in b
PASSED: b
SKIPPED: a
org.testng.SkipException: Skipping this test from execution
  at com.sample.app.tests.SkipTestDemo.a(SkipTestDemo.java:11)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
  at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
  at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
  at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
  at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
  at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
  at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
  at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
  at java.util.ArrayList.forEach(ArrayList.java:1257)
  at org.testng.TestRunner.privateRun(TestRunner.java:770)
  at org.testng.TestRunner.run(TestRunner.java:591)
  at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
  at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
  at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
  at org.testng.SuiteRunner.run(SuiteRunner.java:304)
  at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
  at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
  at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
  at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
  at org.testng.TestNG.runSuites(TestNG.java:1032)
  at org.testng.TestNG.run(TestNG.java:1000)
  at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
  at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
  at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)


===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 1
===============================================


===============================================
Default suite
Total tests run: 2, Passes: 1, Failures: 0, Skips: 1
===============================================


From the console messages, you can confirm that the method is skipped when it throws SkipException.



Previous                                                    Next                                                    Home

No comments:

Post a Comment