- 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 run TestNG from command line?
TestNG allows to run the test suites from the command line (cmd). Here's a set of prerequisites that must be fulfilled in order to run a test suite from the command line −
testng.xml file should be created to define the test suites and the testing classes to execute.
All dependent jars should be available inside a project folder. It includes testing.jar, jcommander.jar and any other jars used in the test cases.
Path of bin or out folder where the .class files are stored after the compilation.
Approach/Algorithm to solve this problem
Step 1 − Create different testing classes having different @Test methods
Step 2 − Compile the class; it will create an out folder in IntelliJ and bin folder in Eclipse.
Step 3 − Place all the jar files in the lib folder.
Step 4 − Now create the testng.xml as given below.
Step 5 − Open the cmd.
Step 6 − Navigate to the project path using cd <project_path>
Step 7 − Run the following command−
java -cp <path of lib>; <path of out or bin folder> org.testng.TestNG <path of testng>/testng.xml
Example
The following code demonstrates how to run TestNG from the command line −
src/ OrderofTestExecutionInTestNG.java
import org.testng.annotations.*; import org.testng.annotations.Test; public class OrderofTestExecutionInTestNG { // test case 1 @Test public void testCase1() { System.out.println("in test case 1"); } // test case 2 @Test public void testCase2() { System.out.println("in test case 2"); } @BeforeMethod public void beforeMethod() { System.out.println("in beforeMethod"); } @AfterMethod public void afterMethod() { System.out.println("in afterMethod"); } @BeforeClass public void beforeClass() { System.out.println("in beforeClass"); } @AfterClass public void afterClass() { System.out.println("in afterClass"); } @BeforeTest public void beforeTest() { System.out.println("in beforeTest"); } @AfterTest public void afterTest() { System.out.println("in afterTest"); } @BeforeSuite public void beforeSuite() { System.out.println("in beforeSuite"); } @AfterSuite public void afterSuite() { System.out.println("in afterSuite"); } }
src/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 = "OrderofTestExecutionInTestNG"/> </classes> </test> </suite>
Command to run
java -cp C:\Users\********\IdeaProjects\TestNGProject\lib\*;C:\Users\*** *****\IdeaProjects\TestNGProjectct\out\production\TestNGProject org.testng.TestNG src/testng.xml
If the user didn't navigate to the testing project path using cd <project path>, then the complete path can be provided in the command as shown above. But, if the user is already in the testing project path, then the command can be modified as follows −
java -cp .\lib\*;.\out\production\TestNGProject org.testng.TestNG src\testng.xml
Output
in beforeSuite in beforeTest in beforeClass in beforeMethod in test case 1 in afterMethod in beforeMethod in test case 2 in afterMethod in afterClass in afterTest in afterSuite =============================================== Suite1 Total tests run: 2, Passes: 2, Failures: 0, Skips: 0 ===============================================
- Related Articles
- How to run a specific group of tests in TestNG from command line?
- How to run Python functions from command line?
- How to run Python functions in Eclipse command line?
- How to run PowerShell commands from the command prompt?
- How to run test groups in TestNG?
- Run a Function in a Script from the Command Line on Linux
- How to run a PowerShell script from the command prompt?
- How to run multiple test classes in TestNG?
- How to call Python module from command line?
- How to upgrade MySQL server from command line?
- How to Pretty print Python dictionary from command line?
- How to repair MySQL tables from the command line?
- How can we return to windows command shell from MySQL command line tool?
- How to run a command inside Docker Container?
- How to run Invoke-Command in PowerShell Workflow?
