Skip to content
Skillpedia
Testing48k · #4361

testng-skill

Helps your agent create automated tests in Java using TestNG. It sets up tests to run in groups, with different data, and even in parallel.

What it does

This tool helps create automatic tests for computer programs using the TestNG library in Java. It can organize tests into groups, use varied data for testing, and configure parallel execution.

When to use it

  • ✓I need to create tests for a Java application.
  • ✓I want to organize my tests into categories (groups).
  • ✓I need to test the same function with different data inputs.

Example of what to ask your AI

“Create a Java test using TestNG to verify user login, with 'smoke' and 'regression' groups.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/testng-skill/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/testng-skill/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool uses special annotations in Java code (like @Test, @DataProvider) and XML configuration files to define how tests should be run and organized.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill testng-skill

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/testng-skill/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

TestNG Testing Skill

When to Use

Use this skill when you need generates TestNG tests in Java with groups, data providers, parallel execution, XML suite configuration, and listeners. Use when user mentions "TestNG", "@DataProvider", "testng.xml", "groups". Triggers on: "TestNG", "@DataProvider", "testng.xml", "TestNG suite", "parallel tests Java".

Core Patterns

Basic Test with Groups

import org.testng.annotations.*;
import org.testng.Assert;

public class LoginTest {
    @BeforeMethod
    public void setUp() { /* setup */ }

    @Test(groups = "smoke")
    public void testLoginSuccess() {
        Assert.assertTrue(loginService.login("user@test.com", "password123"));
    }

    @Test(groups = "regression", dependsOnMethods = "testLoginSuccess")
    public void testAccessDashboard() {
        Assert.assertNotNull(dashboard.getContent());
    }

    @Test(expectedExceptions = AuthenticationException.class)
    public void testLoginInvalidPassword() {
        loginService.login("user@test.com", "wrong");
    }

    @AfterMethod
    public void tearDown() { /* cleanup */ }
}

Data Providers

@DataProvider(name = "loginData")
public Object[][] loginData() {
    return new Object[][] {
        {"admin@test.com", "admin123", true},
        {"user@test.com", "password", true},
        {"invalid@test.com", "wrong", false},
    };
}

@Test(dataProvider = "loginData")
public void testLogin(String email, String password, boolean expected) {
    Assert.assertEquals(loginService.login(email, password), expected);
}

TestNG XML Suite

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Regression" parallel="tests" thread-count="5">
  <test name="Smoke">
    <groups><run><include name="smoke"/></run></groups>
    <classes><class name="tests.LoginTest"/></classes>
  </test>
  <test name="Full">
    <groups><run><include name="regression"/><exclude name="flaky"/></run></groups>
    <packages><package name="tests.*"/></packages>
  </test>
</suite>

Parallel Execution

<suite parallel="methods" thread-count="5">   <!-- Method level -->
<suite parallel="classes" thread-count="5">    <!-- Class level -->
<suite parallel="tests" thread-count="5">      <!-- Test level -->

Soft Assertions

SoftAssert soft = new SoftAssert();
soft.assertEquals(user.getName(), "Alice");
soft.assertEquals(user.getAge(), 25);
soft.assertTrue(user.isActive());
soft.assertAll();  // Reports all failures at once

Listeners

public class TestListener implements ITestListener {
    @Override public void onTestFailure(ITestResult result) {
        System.out.println("Failed: " + result.getName());
        // Take screenshot, log, etc.
    }
}

@Listeners(TestListener.class)
public class LoginTest { /* ... */ }

Lifecycle Annotations

@BeforeSuite → @BeforeTest → @BeforeClass → @BeforeMethod → @Test → @AfterMethod → @AfterClass → @AfterTest → @AfterSuite

Anti-Patterns

Bad Good Why
dependsOnMethods everywhere Independent tests Cascading failures
No groups @Test(groups = "smoke") Can't run subsets
Hard-coded test data @DataProvider Reusable
Priority ordering Independent tests Fragile

Quick Reference

Task Command
Run suite mvn test -DsuiteXmlFile=testng.xml
Run group mvn test -Dgroups=smoke
Run class mvn test -Dtest=LoginTest
Reports test-output/index.html

Deep Patterns → reference/playbook.md

§ Section Lines
1 Project Setup & Configuration Maven + Surefire config
2 Suite XML Configuration Multi-env, parallel, groups
3 BaseTest & Thread-Safe Driver ThreadLocal, ConfigReader
4 Data Providers (Advanced) Excel, JSON, CSV, parallel, cross-class
5 Factory Pattern Cross-browser matrix
6 Listeners (Production Suite) Retry, screenshot, timing
7 Soft Assertions & Dependencies Groups, method deps
8 Page Object Integration PageFactory, fluent POs
9 Parallel Execution Strategies Method/class/test/mixed
10 Reporting Integration Allure, ExtentReports
11 CI/CD Integration GitHub Actions, Jenkins
12 Debugging Quick-Reference 12 common problems
13 Best Practices Checklist 14 items

Limitations

…

FAQ

What are test 'groups'?

Groups are like categories you can assign to your tests. For example, you can have a 'smoke' group for quick, essential tests, and a 'regression' group for more comprehensive tests.

What is a 'data provider'?

It's a way to supply different sets of data to the same test. This way, you don't need to repeat the test code for each value you want to test.

What does 'parallel execution' mean?

It means multiple tests can run at the same time, which can speed up the testing process, especially in large projects.

Details

Original description by the author

Generates TestNG tests in Java with groups, data providers, parallel execution, XML suite configuration, and listeners. Use when user mentions "TestNG", "@DataProvider", "testng.xml", "groups". Triggers on: "TestNG", "@DataProvider", "testng.xml", "TestNG suite", "parallel tests Java".

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#4361
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills