testng

TestNG Java testing framework. Use for Java testing.

7 stars

Best use case

testng is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

TestNG Java testing framework. Use for Java testing.

Teams using testng should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/testng/SKILL.md --create-dirs "https://raw.githubusercontent.com/G1Joshi/Agent-Skills/main/skills/testing/testng/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/testng/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How testng Compares

Feature / AgenttestngStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

TestNG Java testing framework. Use for Java testing.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# TestNG

TestNG is a testing framework setup inspired by JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as parallel testing and data-driven testing.

## When to Use

- **Complex Suites**: You need granular control over which groups of tests run via XML configuration (`testing.xml`).
- **Parallel Execution**: Historically better support for multi-threaded test execution than JUnit.
- **Dependencies**: Tests that depend on other tests (`@Test(dependsOnMethods = { "serverStarted" })`).

## Quick Start

```java
import org.testng.Assert;
import org.testng.annotations.Test;

public class TestNGExample {
    @Test(groups = { "fast" })
    public void testAdd() {
        Assert.assertEquals(1 + 1, 2);
    }
}
```

```xml
<!-- testng.xml -->
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" parallel="methods" thread-count="5">
  <test name="test1">
    <classes>
       <class name="com.example.TestNGExample"/>
    </classes>
  </test>
</suite>
```

## Core Concepts

### Groups

Tagging tests (`@Test(groups = "smoke")`). Allows running specific subsets (Include/Exclude in XML).

### Data Providers

Native support for passing complex objects to tests.

```java
@DataProvider(name = "test1")
public Object[][] createData1() {
 return new Object[][] {
   { "Cedric", new Integer(36) },
   { "Anne", new Integer(37) },
 };
}

@Test(dataProvider = "test1")
public void verifyData1(String n1, Integer n2) { ... }
```

## Best Practices (2025)

**Do**:

- **Use Soft Assertions**: `SoftAssert` allows the test to continue even if one check fails, reporting all errors at the end.
- **Parallelize**: Leverage `thread-count` in CI to speed up execution.

**Don't**:

- **Don't use `dependsOnMethods` for Unit Tests**: Unit tests should be independent. Use dependencies only for Integration flows.

## References

- [TestNG Documentation](https://testng.org/doc/)