pester-migration
Ajuda seu agente a atualizar testes antigos do PowerShell. Ele adapta o código para novas versões, garantindo que os testes continuem funcionando.
O que ela faz
Esta ferramenta ajuda a atualizar seus testes de software (chamados Pester) para uma versão mais nova do PowerShell. Ela ajusta a forma como os testes são escritos e executados para garantir que funcionem corretamente com as novas versões.
Quando usar
- ✓Quando você atualiza seu ambiente de desenvolvimento para uma nova versão principal do PowerShell.
- ✓Quando seus testes antigos do Pester param de funcionar após uma atualização.
- ✓Para garantir que seus testes de software estejam alinhados com as versões mais recentes das ferramentas.
Exemplo do que pedir para a IA
“Atualize meus testes Pester da versão 4 para a 5.”
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 seus testes existentes e aplica as mudanças necessárias na sintaxe e na estrutura. Ela segue guias específicos para cada atualização de versão, garantindo que as alterações sejam feitas corretamente.
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 pester-migrationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/pester-migration/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.
Migração do Pester
Pester é o framework de testes para PowerShell. Arquivos de teste terminam em *.Tests.ps1 e usam
blocos Describe / Context / It com asserções Should. Esta habilidade atualiza um
conjunto existente de uma versão principal do Pester para a próxima e o faz passar novamente.
Modelo mental: cada salto principal tem um caráter diferente. v3→v4 é principalmente uma renomeação de sintaxe. v4→v5 é uma mudança fundamental de tempo de execução (a divisão Descoberta/Execução) e é a difícil. v5→v6 é em grande parte retrocompatível — um punhado de coisas previamente depreciadas agora lançam erros. Migre uma versão principal por vez; nunca pule uma versão.
Guias detalhados e orientados por sintomas vivem em references/ — carregue aquele(s) para o salto
que você está fazendo.
Referências
| Referência | Quando carregar |
|---|---|
| v3-to-v4.md | Should Be → Should -Be, Contain → FileContentMatch, Assert-VerifiableMocks → Assert-VerifiableMock, casos extremos de asserção de array. |
| v4-to-v5.md | O grande. Fases de Descoberta/Execução, configuração BeforeAll, $PSScriptRoot, BeforeDiscovery, -ForEach, escopo de mock, curingas Should -Throw, Invoke-Pester → New-PesterConfiguration. |
| v5-to-v6.md | Apenas PowerShell 5.1/7.4+, descoberta+execução por arquivo, -ForEach vazio lança erro, blocos de setup duplicados lançam erro, templates de nome <...> avaliam, Assert-MockCalled removido, mocks não caem mais, rastreador de cobertura de código, parâmetros Invoke-Pester legados removidos. |
Fonte canônica: os guias de migração oficiais em https://pester.dev/docs/migrations/ — esta habilidade os espelha. Em caso de dúvida, prefira o site.
Passo 0 — Detecte onde você está e para onde está indo
Encontre a(s) versão(ões) instalada(s) e a versão para a qual os testes foram escritos. Estes podem diferir.
# Installed Pester version(s) on this machine
Get-Module Pester -ListAvailable | Select-Object Name, Version, Path
# Version currently imported in the session
(Get-Module Pester).Version
Determine a versão de origem do código de teste com estas heurísticas:
Você vê em *.Tests.ps1 / scripts de build |
Suite foi escrita para |
|---|---|
Should Be / Should Contain (sem hífen) |
v3 ou anterior → comece em v3-to-v4 |
$MyInvocation.MyCommand.Path + dot-source no topo do arquivo; código arbitrário diretamente sob Describe |
v4 → v4-to-v5 |
Assert-MockCalled, Assert-VerifiableMock, Set-ItResult -Pending |
v4 / v5 inicial (estes são removidos em v6) |
Invoke-Pester -Script … -OutputFile … -CodeCoverage … (parâmetros legados) |
invocação v4 → mapear para configuração |
BeforeAll { . $PSScriptRoot/… }, New-PesterConfiguration, Should -Invoke |
já estilo v5 → v5-to-v6 |
Instale a versão de destino quando estiver pronto:
# Latest stable v5 — pin the major to avoid installing Pester 6
Install-Module Pester -MaximumVersion 5.99.99 -Force
# Pester 6
Install-Module Pester -Force
No Windows PowerShell 5.1 o sistema operacional vem com um Pester 3 assinado pela Microsoft que o PowerShellGet não sobrescreverá com o Pester mais novo assinado de forma diferente — adicione
-SkipPublisherChecklá para instalar lado a lado. Não é necessário no PowerShell 7+. Veja https://pester.dev/docs/introduction/installation.
Fluxo de trabalho de migração
Execute este loop para cada salto principal. Não pule dois principais de uma vez — vá v4→v5, depois v5→v6.
- Linha de base. Execute o conjunto na versão atual primeiro e registre aprovações/falhas.
Você precisa de um ponto de partida conhecido como bom (ou conhecido) para que possa distinguir
regressões de migração de falhas pré-existentes.
# Bare Invoke-Pester works on every major; exact parameters differ # (v3/v4: -Script/-OutputFile; v5+/v6: -Path/-Output). Invoke-Pester - Leia a referência para este salto (tabela acima) para que você saiba o escopo completo antes de editar.
- Edite arquivo por arquivo. Aplique as mudanças mecânicas (veja as folhas de cola por salto abaixo e na referência). Mantenha as mudanças pequenas e revisáveis — um arquivo ou uma preocupação por vez.
- Troque as versões com
Install-Module(Passo 0), então reimporte:Remove-Module Pester; Import-Module Pester(ou inicie uma sessão nova). - Execute e corrija. Reexecute com
-Output Detailed; use-Output Diagnostic(v4→v5) ou leia as mensagens de erro explícitas do v6 para localizar problemas. Combine cada falha com as tabelas de sintoma → correção na referência.
…
Perguntas frequentes
O que é Pester?
Pester é um framework (uma estrutura de trabalho) usado para escrever testes automatizados para código escrito em PowerShell. Ele ajuda a verificar se o seu código está funcionando como esperado.
Por que preciso atualizar meus testes Pester?
Assim como outros softwares, o Pester evolui. Novas versões podem introduzir mudanças que tornam os testes escritos para versões antigas incompatíveis. Atualizar garante que seus testes continuem funcionando e aproveitem os novos recursos.
Posso pular versões durante a atualização?
Não é recomendado. É melhor atualizar uma versão principal de cada vez (por exemplo, de v3 para v4, depois de v4 para v5) para gerenciar as mudanças de forma mais eficaz e evitar erros complexos.
Detalhes
Descrição original do autor
Pester migration skill for upgrading PowerShell Pester test suites across major versions — v3→v4, v4→v5, and v5→v6. Covers the Discovery/Run two-phase model, moving setup into BeforeAll, $PSScriptRoot vs $MyInvocation, mock changes (Assert-MockCalled → Should -Invoke, removed fall-through), Invoke-Pester parameters → PesterConfiguration, data-driven -ForEach/-TestCases, and the v6 breaking changes
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5261
- 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