Implementing TestNG and Maven Commands for Java Test Automation in CI/CD Pipelines

Continuous Integration and Continuous Deployment/Delivery (CI/CD) is crucial in software development as it helps ensure quality of code and swift delivery of applications. In this article, we'll focus on implementing TestNG and Maven commands to run tests in CI/CD pipelines.

Step 1: Install TestNG and Maven

Firstly, ensure that TestNG and Maven are installed on your machine or server. You can download TestNG from its official website and install it. For Maven, you can download and install it from the official Apache Maven website.

Step 2: Create TestNG.xml

Create a TestNG.xml file with the following code snippet to configure the test suite and test cases:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" verbose="1" >
  <test name="Test" >
    <classes>
      <class name="com.example.tests.ClassName" />
    </classes>
  </test>
</suite>

Step 3: Create pom.xml

Create a Maven pom.xml file with the following code snippet to configure the Maven project and TestNG:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.4.0</version>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <testSourceDirectory>src/test/java/</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Step 4: Run the TestNG and Maven Commands in CI/CD Pipelines

Now that we've set up the project, we can run it in a CI/CD pipeline. Here's an example of how to run TestNG and Maven commands in a Jenkins pipeline:

pipeline {
  agent any

  stages {
    stage('Build') {
      steps {
        sh 'mvn clean package'
      }
    }

    stage('Test') {
      steps {
        sh 'mvn test'
      }
    }
  }
}

The above pipeline has two stages: Build and Test. In the Build stage, we compile and package the project with "mvn clean package". In the Test stage, we run the tests with "mvn test".

Conclusion

In conclusion, TestNG and Maven are powerful tools for running Java tests, and they can be easily integrated into CI/CD pipelines. By following these steps, you should be able to run TestNG tests using Maven commands in your CI/CD pipelines.

Did you find this article valuable?

Support Rishav Trivedi by becoming a sponsor. Any amount is appreciated!