mcpField
T
testng-skill

testng-skill

github.com/lambdatestTesting & quality384235 installsUpdated 2w ago
Repository

About testng-skill

testng-skill is a testing reference for Java developers working with TestNG. It brings together examples and advanced guidance for suites, data providers, parallel execution, listeners, reporting, and CI/CD.

Key features

  1. 01Tests, groups, and data providers
  2. 02Suite XML and parallel execution
  3. 03Soft assertions and listeners
  4. 04Advanced setup and integration patterns
  5. 05Debugging and best-practice checklists

Use cases

  1. 01Organizing Java tests into runnable groups
  2. 02Running tests with data sets in parallel
  3. 03Setting up listeners, reports, and CI

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/lambdatest/agent-skills --skill testng-skill

After installing, type/testng-skillin Claude Code to confirm it loaded.

Bundled filesreference/advanced-patterns.mdreference/playbook.md

Details

From the project README

TestNG Testing Skill

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("[email protected]", "password123"));
    }

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

    @Test(expectedExceptions = AuthenticationException.class)
    public void testLoginInvalidPassword() {
        loginService.login("[email protected]", "wrong");
    }

    @AfterMethod
    public void tearDown() { /* cleanup */ }
}
Data Providers
@DataProvider(name = "loginData")
public Object[][] loginData() {
    return new Object[][] {
        {"[email protected]", "admin123", true},
        {"[email protected]", "password", true},
        {"[email protected]", "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
BadGoodWhy
dependsOnMethods everywhereIndependent testsCascading failures
No groups@Test(groups = "smoke")Can't run subsets
Hard-coded test data@DataProviderReusable
Priority orderingIndependent testsFragile

Quick Reference

TaskCommand
Run suitemvn test -DsuiteXmlFile=testng.xml
Run groupmvn test -Dgroups=smoke
Run classmvn test -Dtest=LoginTest
Reportstest-output/index.html

Deep Patterns → reference/playbook.md

§SectionLines
1Project Setup & ConfigurationMaven + Surefire config
2Suite XML ConfigurationMulti-env, parallel, groups
3BaseTest & Thread-Safe DriverThreadLocal, ConfigReader
4Data Providers (Advanced)Excel, JSON, CSV, parallel, cross-class
5Factory PatternCross-browser matrix
6Listeners (Production Suite)Retry, screenshot, timing
7Soft Assertions & DependenciesGroups, method deps
8Page Object IntegrationPageFactory, fluent POs
9Parallel Execution StrategiesMethod/class/test/mixed
10Reporting IntegrationAllure, ExtentReports
11CI/CD IntegrationGitHub Actions, Jenkins
12Debugging Quick-Reference12 common problems
13Best Practices Checklist14 items

Comments

Markdown supported