creating-oracle-to-postgres-migration-integration-tests
Faz seu agente criar testes de integração para migração de dados Oracle para PostgreSQL. Garante que o comportamento esperado seja capturado.
O que ela faz
Esta ferramenta cria testes automáticos para verificar como seu programa interage com o banco de dados Oracle. Ela garante que o programa funcione corretamente com o Oracle antes de ser adaptado para o PostgreSQL.
Quando usar
- ✓Quando você está começando a preparar a migração do Oracle para o PostgreSQL.
- ✓Antes de qualquer trabalho de migração para o PostgreSQL ser feito.
- ✓Para garantir que os testes funcionem com o Oracle como base.
Exemplo do que pedir para a IA
“Crie testes de integração para o meu projeto de acesso a dados que se conecta ao Oracle.”
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 analisa seu código, cria dados de exemplo no Oracle e escreve testes que verificam se o código se comporta como esperado. Esses testes são feitos para serem facilmente adaptados para o PostgreSQL depois.
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 github/awesome-copilot --skill creating-oracle-to-postgres-migration-integration-testsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/creating-oracle-to-postgres-migration-integration-tests/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.
Criando Testes de Integração para Migração de Oracle para PostgreSQL
Gera casos de teste de integração para artefatos de acesso a dados em um único projeto de destino. Os testes visam o Oracle e capturam seu comportamento como a linha de base autoritativa. Eles são escritos para serem logicamente portáteis — para que possam sobreviver à migração da Fase 6 sem reescrita — mas não são executados contra o PostgreSQL nesta fase.
Pré-requisitos
- O projeto de teste já deve existir e compilar (estruturado separadamente).
- Leia a classe de teste base existente e as convenções do gerenciador de sementes antes de escrever os testes.
Fluxo de Trabalho
Test Creation:
- [ ] Step 1: Discover the test project conventions
- [ ] Step 2: Identify testable data access artifacts
- [ ] Step 3: Create seed data
- [ ] Step 4: Write test cases
- [ ] Step 5: Review determinism
Etapa 1: Descobrir as convenções do projeto de teste
Leia a classe de teste base, o gerenciador de sementes e o arquivo do projeto para entender os padrões de herança, gerenciamento de transações e convenções de arquivo de sementes.
Etapa 2: Identificar artefatos de acesso a dados testáveis
Escopo apenas para o projeto de destino. Liste os métodos de acesso a dados que interagem com o banco de dados — repositórios, DAOs, chamadores de stored procedure, construtores de consulta.
Etapa 3: Criar dados de semente
- Siga as convenções de localização e nomenclatura de arquivos de sementes do projeto existente.
- Evite
TRUNCATE TABLE— mantenha os dados existentes do banco de dados intactos. - Assuma que linhas de negócios e linhas de consulta existentes já estão presentes; adicione apenas registros de semente mínimos e seguros contra colisões necessários para o cenário.
- Não confirme dados de semente; os testes são executados em transações que são revertidas.
- Garanta que os dados de semente não entrem em conflito com outros testes.
- Carregue e verifique os dados de semente antes que as asserções dependam deles.
- Crie ou reutilize uma classe de
LookupConstantsde teste para IDs/códigos de consulta estáveis usados em construtores de sementes e asserções.
Etapa 4: Escrever casos de teste
- Herde da classe de teste base para obter criação/reversão automática de transações.
- Garanta que cada método que acessa o banco de dados em escopo tenha pelo menos um teste de integração (ou vários testes para ramos de comportamento de maior risco).
- Afirme saídas lógicas (linhas, colunas, contagens, tipos de erro), não mensagens específicas da plataforma.
- Afirme valores esperados específicos — nunca afirme que um valor é meramente não nulo ou não vazio quando um valor concreto está disponível a partir dos dados de semente.
- Evite testar caminhos de código que não existem ou afirmar comportamento que não pode ocorrer.
- Evite asserções redundantes entre testes que visam o mesmo método.
- Para parâmetros de texto, inclua cobertura de string vazia e
NULL/entrada ausente, onde aplicável. - Para comportamento de data/hora, inclua asserções que validem que o valor gravado e lido de volta corresponde — use a precisão da coluna do Oracle (por exemplo, apenas segundos para uma coluna de data/hora sem frações de segundo) em vez de assumir qualquer sintaxe de tipo de banco de dados específica.
Etapa 5: Revisar determinismo
Reexamine cada asserção contra valores não nulos. Confirme que cada um é determinístico em relação aos dados semeados. Corrija qualquer asserção que dependa do estado do banco de dados fora do controle do teste.
Principais Restrições
- Apenas Fase 3 — estes testes visam o Oracle. Não invoque esta habilidade durante a Fase 6 ou contra um projeto que visa o PostgreSQL.
- Oracle é a fonte dourada — os testes capturam o comportamento esperado do Oracle.
- Portabilidade de asserção — evite mensagens de erro ou sintaxe específicas da plataforma nas asserções para que, quando o projeto de teste for migrado para o PostgreSQL na Fase 6, as asserções não exijam alterações.
- Semear apenas contra Oracle — o projeto de teste será migrado para o PostgreSQL na Fase 6; os dados de semente e a infraestrutura permanecerão com o Oracle como alvo até então.
- Escopo para um projeto — não crie testes para artefatos fora do projeto de destino.
- Preservar dados existentes — nunca reescreva ou apague linhas de negócios ou de consulta pré-existentes.
Perguntas frequentes
O que são 'artefatos de acesso a dados'?
São as partes do seu código que conversam diretamente com o banco de dados para buscar ou salvar informações.
Por que usar o Oracle como 'fonte autoritativa'?
Porque o Oracle é o sistema atual. Os testes garantem que tudo funciona bem com ele antes de mudar para o PostgreSQL.
Posso usar isso depois que o projeto já foi migrado para o PostgreSQL?
Não, esta ferramenta é apenas para a fase de preparação, antes da migração. Ela só funciona com o Oracle.
Detalhes
Descrição original do autor
Creates integration test cases targeting Oracle for .NET data access artifacts. Tests capture Oracle expected behavior as the authoritative baseline; they are written once and later ported to PostgreSQL by migrating the test project in Phase 6. Use only during Phase 3, before any PostgreSQL migration work has begun. Do not invoke during Phase 6 or against a project that has already been migrated.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5093
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
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