Pular para o conteúdo
Skillpedia
Testes40 mil · #5262

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

https://github.com/github/awesome-copilot/blob/main/skills/pester-should-migration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/pester-should-migration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-migration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/pester-should-migration/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.

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 -Be ainda 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ássico Should -Be continua funcionando, então a adoção de Should-* é 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 -Not nas 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:

  1. Sensibilidade a maiúsculas/minúsculas. Should -Be clássico é insensível a maiúsculas/minúsculas em strings; o mesmo vale para Should-Be. Mas Should -BeExactly clássico (sensível a maiúsculas/minúsculas) não tem equivalente simples — use Should-BeString -CaseSensitive. (Should-Be nunca é sensível a maiúsculas/minúsculas.) O mesmo padrão para BeLikeExactly → Should-BeLikeString -CaseSensitive e MatchExactly → Should-MatchString -CaseSensitive.
  2. Truthy vs. true. Should -BeTrue / -BeFalse clássicos aceitam qualquer valor truthy / falsy (1, 'x', 0, '', $null, @()). Os novos Should-BeTrue / Should-BeFalse são estritos (exatamente $true / $false). Para preservar o comportamento solto antigo, use Should-BeTruthy / Should-BeFalsy. Use os estritos apenas quando o valor for realmente um booleano.
  3. BeNullOrEmpty nã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ção Should -Not -BeNullOrEmpty se divide de forma semelhante em Should-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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas