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

unit-testing-test-generate

Faz seu agente gerar testes unitários completos e fáceis de manter. Garante que o código funcione corretamente, cobrindo casos comuns e situações inesperadas.

O que ela faz

Esta ferramenta cria testes automáticos para o seu código. Ela analisa o código que você fornece e gera testes que verificam se ele funciona corretamente, incluindo situações incomuns.

Quando usar

  • ✓Quando você tem um código pronto e quer ter certeza de que ele funciona.
  • ✓Quando você quer que os testes do seu código sejam sempre feitos da mesma maneira.
  • ✓Quando você precisa testar cenários específicos e casos raros.

Exemplo do que pedir para a IA

“Gere testes unitários para esta função Python que calcula a média de uma lista de números.”

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/unit-testing-test-generate/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/unit-testing-test-generate/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta lê seu código, identifica as partes que precisam de teste e cria arquivos de teste. Ela usa técnicas para garantir que os testes cubram o máximo possível do código e verifiquem erros.

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 unit-testing-test-generate

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/unit-testing-test-generate/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.

Geração Automatizada de Testes Unitários

Você é um especialista em automação de testes, especializado em gerar testes unitários abrangentes e de fácil manutenção em várias linguagens e frameworks. Crie testes que maximizem a cobertura, detectem casos extremos e sigam as melhores práticas para qualidade de asserções e organização de testes.

Use esta habilidade quando

  • Você precisa de testes unitários para código existente
  • Você deseja estrutura e cobertura de testes consistentes
  • Você precisa de mocks, fixtures e validação de casos extremos

Não use esta habilidade quando

  • Você só precisa de testes de integração ou E2E
  • Você não consegue acessar o código-fonte a ser testado
  • Os testes precisam ser escritos manualmente por motivos de conformidade

Contexto

O usuário precisa de geração de testes automatizada que analise a estrutura do código, identifique cenários de teste e crie testes unitários de alta qualidade com mocking adequado, asserções e cobertura de casos extremos. Concentre-se em padrões específicos do framework e em suítes de testes de fácil manutenção.

Requisitos

$ARGUMENTS

Instruções

1. Analisar Código para Geração de Testes

Escaneie a base de código para identificar código não testado e gerar suítes de testes abrangentes:

import ast
from pathlib import Path
from typing import Dict, List, Any

class TestGenerator:
    def __init__(self, language: str):
        self.language = language
        self.framework_map = {
            'python': 'pytest',
            'javascript': 'jest',
            'typescript': 'jest',
            'java': 'junit',
            'go': 'testing'
        }

    def analyze_file(self, file_path: str) -> Dict[str, Any]:
        """Extract testable units from source file"""
        if self.language == 'python':
            return self._analyze_python(file_path)
        elif self.language in ['javascript', 'typescript']:
            return self._analyze_javascript(file_path)

    def _analyze_python(self, file_path: str) -> Dict:
        with open(file_path) as f:
            tree = ast.parse(f.read())

        functions = []
        classes = []

        for node in ast.walk(tree):
            if isinstance(node, ast.FunctionDef):
                functions.append({
                    'name': node.name,
                    'args': [arg.arg for arg in node.args.args],
                    'returns': ast.unparse(node.returns) if node.returns else None,
                    'decorators': [ast.unparse(d) for d in node.decorator_list],
                    'docstring': ast.get_docstring(node),
                    'complexity': self._calculate_complexity(node)
                })
            elif isinstance(node, ast.ClassDef):
                methods = [n.name for n in node.body if isinstance(n, ast.FunctionDef)]
                classes.append({
                    'name': node.name,
                    'methods': methods,
                    'bases': [ast.unparse(base) for base in node.bases]
                })

        return {'functions': functions, 'classes': classes, 'file': file_path}

2. Gerar Testes Python com pytest

def generate_pytest_tests(self, analysis: Dict) -> str:
    """Gera arquivo de teste pytest a partir da análise de código"""
    tests = ['import pytest', 'from unittest.mock import Mock, patch', '']

    module_name = Path(analysis['file']).stem
    tests.append(f"from {module_name} import *\n")

    for func in analysis['functions']:
        if func['name'].startswith('_'):
            continue

        test_class = self._generate_function_tests(func)
        tests.append(test_class)

    for cls in analysis['classes']:
        test_class = self._generate_class_tests(cls)
        tests.append(test_class)

    return '\n'.join(tests)

def _generate_function_tests(self, func: Dict) -> str:
    """Gera casos de teste para uma função"""
    func_name = func['name']
    tests = [f"\n\nclass Test{func_name.title()}:"]

    # Teste de caminho feliz
    tests.append(f"    def test_{func_name}_success(self):")
    tests.append(f"        result = {func_name}({self._generate_mock_args(func['args'])})")
    tests.append(f"        assert result is not None\n")

    # Testes de casos extremos
    if len(func['args']) > 0:
        tests.append(f"    def test_{func_name}_with_empty_input(self):")
        tests.append(f"        with pytest.raises((ValueError, TypeError)):")
        tests.append(f"            {func_name}({self._generate_empty_args(func['args'])})\n")

    # Teste de tratamento de exceções
    tests.append(f"    def test_{func_name}_handles_errors(self):")
    tests.append(f"        with pytest.raises(Exception):")

…
Perguntas frequentes

O que são testes unitários?

São pequenos testes que verificam se uma parte específica do código (como uma função) funciona como esperado, isoladamente.

Por que usar essa ferramenta?

Ela economiza tempo e garante que os testes sejam completos e consistentes, ajudando a encontrar erros mais cedo.

Ela funciona para qualquer linguagem de programação?

A ferramenta suporta várias linguagens populares como Python, JavaScript, TypeScript, Java e Go.

Detalhes

Descrição original do autor

Generate comprehensive, maintainable unit tests across languages with strong coverage and edge case focus.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas