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
Mensagem pronta para colar
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-generateOu 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.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.
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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4443
- 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