- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to force end an entire test suite from the BeforeSuite annotation if a condition is met in TestNG?
TestNG supports multiple ways to skip or ignore a @Test execution. Based on requirement, a user can skip a complete test without executing it at all from BeforeSuite, if a condition is met. If the condition meets at the time of execution, it skips the running of @Test methods.
Conditional Skip is a proper way to force-end an entire test suite, if a condition is met in @BeforeSuite method.
Conditional Skip − User can have a condition check. If the condition is met, it will throw a SkipException and skip the rest of the code.
In this article, we will demonstrate how to force-end an entire test suite based on a condition.
Approach/Algorithm to solve this problem:
Step 1 − Create a TestNG class, NewTestngClass.
Step 2 − Write two different @Test methods in the class and one @BeforeSuite, NewTestngClass, as shown in the programming code section below.
1st and 2nd @Test Method − It will skip execution based on @BeforeSuite condition.
@BeforeTest Method − It is conditional skip. The code checks whether the DataAvailable parameter is True or False. If it is False, it throws SkipException and skips the test. But, if DataAvailable is True, it won't throw the SkipException and continue the execution. Make sure SkipException is not caught in the catchcatch block. Otherwise, it will throw the
SkipException
and continue the execution.Step 3 − Create the testNG.xml as given below to run the TestNG classes.
Step 4 − Finally, run the testNG.xml or directly testNG class in IDE or compile and run it using command line.
Program Code
Use the following code for the common TestNG class, NewTestngClass−
src/ NewTestngClass.java
import org.testng.SkipException; import org.testng.annotations.*; public class NewTestngClass { @Test() public void testcase1(){ System.out.println("Testcase 1 - executed"); } @Test() public void testcase2(){ System.out.println("Testcase 2 - executed"); } @BeforeSuite public void beforesuite(){ boolean DataAvailable=false; System.out.println("BeforeSuite - Conditional Skip"); if(!DataAvailable) throw new SkipException("Skipping this exception"); System.out.println("Executed Successfully"); } }
testng.xml
This is a configuration file that is used to organize and run the TestNG test cases. It is very handy when limited tests are needed to execute rather than the full suite.
<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name = "Suite1"> <test name = "test1"> <classes> <class name = "NewTestngClass"/> </classes> </test> </suite>
Output
BeforeSuite - Conditional Skip =============================================== Default Suite Total tests run: 2, Passes: 0, Failures: 0, Skips: 2 Configuration Failures: 0, Skips: 1 =============================================== Process finished with exit code 0 Test ignored. Test ignored.
- Related Articles
- How to disable an entire unit test in TestNG?
- How to pass a variable from BeforeTest to Test annotation in TestNG?
- How to run multiple test cases using TestNG Test Suite in Selenium?
- How to retrieve the test suite name at runtime in TestNG?
- How to retrieve all test methods name in TestNG suite?
- How to disable a TestNG test based on a condition?
- Mask an array where a condition is met in Numpy
- What is TestNG Annotation Order?
- How to sum cells in a column if a condition is met in another column with MySQL?
- How to exclude a test class from a testing suite using testng.xml?
- How to execute a single test from a large testing suite using TestNG.xml?
- Select a column if condition is met in MySQL to fetch records from current date and current date + 1
- How to overlook a particular test method from execution in TestNG?
- How to incorporate and remove test methods from execution from a\ncollection of test cases in TestNG?
- Get a matrix as Output if a condition for a single value is met in R.
