pester-should-migration
Faz seu agente migrar a sintaxe de testes do Pester. Ele converte comandos antigos para o novo formato, facilitando a atualização de testes.
O que ela faz
Esta ferramenta ajuda a atualizar seus testes de código escritos em uma linguagem chamada Pester. Ela transforma a forma antiga de escrever testes (`Should -Be`) para a nova forma (`Should-Be`), tornando as mensagens de erro mais claras.
Quando usar
- ✓Quando você quer modernizar seus testes para a versão mais recente do Pester.
- ✓Quando você precisa converter testes antigos para o novo formato.
- ✓Quando você deseja mensagens de erro mais detalhadas e precisas.
Exemplo do que pedir para a IA
“Converta os testes `Should -Be` para `Should-Be` no meu código.”
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 procura por padrões antigos como `Should -Be` ou `Should -Not -Be` e os substitui pelos novos `Should-Be` ou `Should-NotBe`. Algumas conversões exigem atenção extra para garantir que o comportamento do teste permaneça o mesmo.
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-should-migrationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/pester-should-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.
Pester Should -* → Should-* Migração
Converte asserções clássicas do Pester v5 (Should -Be, espaço e depois o parâmetro) para as
novas asserções Should-* do Pester v6 (Should-Be, hífen, sem espaço).
Status: experimental / preview. Verificado contra Pester 6.0.0-rc2. O estilo clássico
Should -Beainda funciona no v6, então migre incrementalmente e mantenha a suíte verde.
Habilidade complementar. Esta habilidade cobre a mudança opcional para os novos operadores
Should-*. Para atualizar uma suíte entre versões principais do Pester (v3→v4→v5→v6 — o runtime, mocks e configuração), use a habilidade separada pester-migration. No v6, o clássicoShould -Becontinua funcionando, então a adoção deShould-*é independente de qualquer atualização de versão.
Quando Usar
- Modernizando uma suíte Pester para as asserções
Should-*do v6. - Um usuário pede para migrar / converter / reescrever chamadas
Should -.... - Você quer mensagens de falha mais claras e cientes de tipo das novas asserções.
Saiba Isto Primeiro
- Ambas as sintaxes funcionam lado a lado no Pester v6. A migração é opcional e pode ser feita um teste (ou um arquivo) de cada vez. Nada quebra se você deixar alguns clássicos.
- Requer Pester v6+. Os comandos
Should-*não existem no v5. - Negação é um comando separado, não um switch
-Not:Should -Not -Be→Should-NotBe. Não há parâmetro-Notnas novas asserções. - O valor real ainda vem do pipeline (
$x | Should-Be 1) ou de-Actual(Should-Be -Actual $x -Expected 1).-Becauseé mantido inalterado. - A maioria das renomeações são mecânicas, mas várias têm mudanças de comportamento que você deve verificar manualmente — veja Gotchas.
Procedimento
Passo 1 — Encontre as asserções clássicas
Procure no alvo pela sintaxe clássica separada por espaço (o indicativo é Should -,
ou Should seguido por -Not):
Should - # any classic operator
Should -Not - # negated classic operator
Assert-MockCalled # also removed in v6 -> Should-Invoke
Limite o escopo a arquivos de teste do PowerShell (*.Tests.ps1, *.ps1).
Passo 2 — Aplique o mapeamento
Conversões mais usadas (lista completa em references/assertion-map.md):
| Clássico (v5) | Novo (v6) |
|---|---|
$x | Should -Be 1 |
$x | Should-Be 1 |
$x | Should -Not -Be 1 |
$x | Should-NotBe 1 |
$x | Should -BeExactly 'A' |
$x | Should-BeString 'A' -CaseSensitive |
$x | Should -BeGreaterOrEqual 2 |
$x | Should-BeGreaterThanOrEqual 2 |
$x | Should -BeLessOrEqual 2 |
$x | Should-BeLessThanOrEqual 2 |
$x | Should -BeLike 'a*' |
$x | Should-BeLikeString 'a*' |
$x | Should -Match 're' |
$x | Should-MatchString 're' |
$x | Should -BeOfType [int] |
$x | Should-HaveType ([int]) |
$x | Should -BeNullOrEmpty |
depende — veja gotchas (sem equivalente único) |
$c | Should -HaveCount 3 |
$c | Should-BeCollection -Count 3 |
$c | Should -Contain 2 |
$c | Should-ContainCollection 2 |
{ ... } | Should -Throw 'msg' |
{ ... } | Should-Throw -ExceptionMessage 'msg' |
Should -Invoke Get-Thing |
Should-Invoke Get-Thing |
Should -InvokeVerifiable |
Should-Invoke -Verifiable |
Passo 3 — Verifique os gotchas de comportamento (NÃO pule)
Estes não se traduzem por uma renomeação simples. Leia cada um antes de converter:
- Sensibilidade a maiúsculas/minúsculas.
Should -Beclássico é insensível a maiúsculas/minúsculas em strings; o mesmo vale paraShould-Be. MasShould -BeExactlyclássico (sensível a maiúsculas/minúsculas) não tem equivalente simples — useShould-BeString -CaseSensitive. (Should-Benunca é sensível a maiúsculas/minúsculas.) O mesmo padrão paraBeLikeExactly→Should-BeLikeString -CaseSensitiveeMatchExactly→Should-MatchString -CaseSensitive. - Truthy vs. true.
Should -BeTrue/-BeFalseclássicos aceitam qualquer valor truthy / falsy (1,'x',0,'',$null,@()). Os novosShould-BeTrue/Should-BeFalsesão estritos (exatamente$true/$false). Para preservar o comportamento solto antigo, useShould-BeTruthy/Should-BeFalsy. Use os estritos apenas quando o valor for realmente um booleano. BeNullOrEmptynão tem um equivalente único. Escolha pela intenção:$null→Should-BeNull; string vazia →Should-BeEmptyString; coleção vazia →Should-BeCollection -Count 0; "falsy" amplo →Should-BeFalsy. A negaçãoShould -Not -BeNullOrEmptyse divide de forma semelhante emShould-NotBeNull/Should-NotBeEmptyString/Should-NotBeWhiteSpaceString.
…
Perguntas frequentes
Preciso atualizar todos os meus testes de uma vez?
Não, você pode atualizar um teste ou um arquivo por vez. O Pester ainda entende o formato antigo na nova versão, então não há pressa.
O que acontece se eu não atualizar?
Nada vai quebrar imediatamente. Os testes antigos continuarão funcionando na versão 6 do Pester. A atualização é opcional para aproveitar as novas funcionalidades.
Alguns testes podem parar de funcionar após a atualização?
Sim, algumas conversões são mais complexas (como `Should -BeNullOrEmpty` ou comparações de coleções) e podem exigir ajustes manuais para garantir que o teste se comporte como esperado. É importante verificar os testes após a conversão.
Detalhes
Descrição original do autor
Experimental (preview) Pester skill for migrating classic Should -Be (v5) assertion syntax to the new Should-* (v6) assertions (note the hyphen, no space), e.g. `Should -Be` -> `Should-Be`, `Should -Not -Be` -> `Should-NotBe`. Tracks Pester 6, which is still a release candidate, so this guidance may change; verified against Pester 6.0.0-rc2. Use when converting Pester v5 assertions to Pester v6 Sh
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5262
- 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