testng-skill
Ajuda seu agente a criar testes automáticos em Java usando TestNG. Ele configura testes para rodar em grupo, com dados diferentes e até em paralelo.
O que ela faz
Esta ferramenta ajuda a criar testes automáticos para programas de computador usando a biblioteca TestNG em Java. Ela pode organizar testes em grupos, usar dados variados para testar e configurar a execução paralela.
Quando usar
- ✓Preciso criar testes para uma aplicação Java.
- ✓Quero organizar meus testes em categorias (grupos).
- ✓Preciso testar a mesma função com diferentes entradas de dados.
Exemplo do que pedir para a IA
“Crie um teste em Java usando TestNG para verificar o login de um usuário, com grupos 'smoke' e 'regression'.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta utiliza anotações especiais no código Java (como @Test, @DataProvider) e arquivos de configuração XML para definir como os testes devem ser executados e organizados.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill testng-skillOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/testng-skill/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Habilidade de Teste TestNG
Quando Usar
Use esta habilidade quando precisar gerar testes TestNG em Java com grupos, provedores de dados, execução paralela, configuração de suíte XML e listeners. Use quando o usuário mencionar "TestNG", "@DataProvider", "testng.xml", "groups". Dispara em: "TestNG", "@DataProvider", "testng.xml", "TestNG suite", "parallel tests Java".
Padrões Principais
Teste Básico com Grupos
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 */ }
}
Provedores de Dados
@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);
}
Suíte XML TestNG
<!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>
Execução Paralela
<suite parallel="methods" thread-count="5"> <!-- Method level -->
<suite parallel="classes" thread-count="5"> <!-- Class level -->
<suite parallel="tests" thread-count="5"> <!-- Test level -->
Asserções Suaves (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 { /* ... */ }
Anotações de Ciclo de Vida
@BeforeSuite → @BeforeTest → @BeforeClass → @BeforeMethod → @Test → @AfterMethod → @AfterClass → @AfterTest → @AfterSuite
Anti-Padrões
| Ruim | Bom | Porquê |
|---|---|---|
dependsOnMethods em todo lugar |
Testes independentes | Falhas em cascata |
| Sem grupos | @Test(groups = "smoke") |
Não é possível executar subconjuntos |
| Dados de teste codificados | @DataProvider |
Reutilizável |
| Ordenação por prioridade | Testes independentes | Frágil |
Referência Rápida
| Tarefa | Comando |
|---|---|
| Executar suíte | mvn test -DsuiteXmlFile=testng.xml |
| Executar grupo | mvn test -Dgroups=smoke |
| Executar classe | mvn test -Dtest=LoginTest |
| Relatórios | test-output/index.html |
Padrões Profundos → reference/playbook.md
| § | Seção | Linhas |
|---|---|---|
| 1 | Configuração e Preparação do Projeto | Configuração Maven + Surefire |
| 2 | Configuração XML da Suíte | Múltiplos ambientes, paralelo, grupos |
| 3 | BaseTest e Driver Thread-Safe | ThreadLocal, ConfigReader |
| 4 | Provedores de Dados (Avançado) | Excel, JSON, CSV, paralelo, entre classes |
| 5 | Padrão Factory | Matriz de navegadores cruzados |
| 6 | Listeners (Suíte de Produção) | Retry, screenshot, timing |
| 7 | Asserções Suaves e Dependências | Grupos, dependências de métodos |
| 8 | Integração com Page Object | PageFactory, POs fluentes |
| 9 | Estratégias de Execução Paralela | Método/classe/teste/misto |
| 10 | Integração de Relatórios | Allure, ExtentReports |
| 11 | Integração CI/CD | GitHub Actions, Jenkins |
| 12 | Referência Rápida de Debugging | 12 problemas comuns |
| 13 | Checklist de Melhores Práticas | 14 itens |
Limitações
…
Perguntas frequentes
O que são 'grupos' de testes?
Grupos são como categorias que você pode dar aos seus testes. Por exemplo, você pode ter um grupo 'smoke' para testes rápidos e essenciais, e um grupo 'regression' para testes mais completos.
O que é um 'data provider'?
É uma forma de fornecer diferentes conjuntos de dados para um mesmo teste. Assim, você não precisa repetir o código do teste para cada valor que quer testar.
O que significa 'execução paralela'?
Significa que vários testes podem ser executados ao mesmo tempo, o que pode acelerar o processo de teste, especialmente em projetos grandes.
Detalhes
Descrição original do autor
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".
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4361
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC