Pular para o conteúdo
Skillpedia
Testes48 mil · #4361

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

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

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/testng-skill/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-skill

Ou 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.md
Conteú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".

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4361
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas