testng
1
总安装量
1
周安装量
#50233
全站排名
安装命令
npx skills add https://github.com/g1joshi/agent-skills --skill testng
Agent 安装分布
mcpjam
1
claude-code
1
replit
1
junie
1
zencoder
1
Skill 文档
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
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestNGExample {
@Test(groups = { "fast" })
public void testAdd() {
Assert.assertEquals(1 + 1, 2);
}
}
<!-- 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.
@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:
SoftAssertallows the test to continue even if one check fails, reporting all errors at the end. - Parallelize: Leverage
thread-countin CI to speed up execution.
Don’t:
- Don’t use
dependsOnMethodsfor Unit Tests: Unit tests should be independent. Use dependencies only for Integration flows.