Introdução

No contexto atual do desenvolvimento de software, assegurar a qualidade das automações e scripts é fundamental para evitar erros em produção e para garantir que as funcionalidades atendam às expectativas. O PowerShell, uma ferramenta poderosa da Microsoft, permite a automação de tarefas administrativas e de configuração, mas nem sempre os scripts válidos são os que funcionam corretamente. O Pester é um framework de testes para PowerShell que possibilita a realização de testes automatizados, permitindo verificar a lógica de scripts e confirmar que eles operam como esperado. Neste tutorial, vamos aprender a integrar o PowerShell com o Pester, criando um ciclo de desenvolvimento que inclui a escrita de scripts automatizados e a aplicação de testes unitários, tudo isso passo a passo.

Etapas

  1. Configuração do Ambiente

    Antes de começarmos, é necessário garantir que você tenha o PowerShell instalado em sua máquina. O Pester já vem pré-instalado com versões recentes do PowerShell, mas você pode atualizá-lo usando o comando PowerShell a seguir. Abra o console do PowerShell e execute:

    commands
    Install-Module -Name Pester -Force -SkipPublisherCheck

  2. Criando um Script PowerShell

    Vamos criar um simples script PowerShell que adiciona dois números. Crie um arquivo chamado `Calculator.ps1` com o seguinte conteúdo:

    Calculator.ps1
    function Add-Numbers {
        param(
            [int]$a,
            [int]$b
        )
        return $a + $b
    }

  3. Escrevendo Testes com Pester

    Agora, vamos criar testes para o nosso script `Calculator.ps1`. Crie um novo arquivo chamado `Calculator.Tests.ps1` e inclua os seguintes testes:

    Calculator.Tests.ps1
    Describe 'Add-Numbers' {
        It 'should add two numbers correctly' {
            .\Calculator.ps1
            $result = Add-Numbers -a 5 -b 10
            $result | Should -Be 15
        }
    }

  4. Executando os Testes

    Com nossos testes prontos, o próximo passo é executá-los. No console do PowerShell, navegue até o diretório onde seus arquivos estão salvos e faça o seguinte:

    commands
    Invoke-Pester -Path .\Calculator.Tests.ps1

  5. Adicionando mais funcionalidades ao script

    Agora que temos a estrutura básica, vamos adicionar uma funcionalidade de subtração ao nosso script. Atualize o arquivo `Calculator.ps1` com o seguinte conteúdo:

    Calculator.ps1
    function Add-Numbers {
        param(
            [int]$a,
            [int]$b
        )
        return $a + $b
    }
    
    function Subtract-Numbers {
        param(
            [int]$a,
            [int]$b
        )
        return $a - $b
    }

  6. Atualizando os Testes para a nova funcionalidade

    Com a nova funcionalidade de subtração, precisaremos adicionar mais testes em `Calculator.Tests.ps1`. Atualize o arquivo com os seguintes testes adicionais:

    Calculator.Tests.ps1
    Describe 'Subtract-Numbers' {
        It 'should subtract two numbers correctly' {
            .\Calculator.ps1
            $result = Subtract-Numbers -a 10 -b 5
            $result | Should -Be 5
        }
    }

  7. Executando os testes novamente

    Após adicionar as funcionalidades e os testes, execute novamente os testes para garantir que tudo está funcionando corretamente:

    commands
    Invoke-Pester -Path .\Calculator.Tests.ps1

  8. Criando um Módulo PowerShell

    Para modularizar nosso código, podemos criar um módulo PowerShell a partir do nosso script. Crie um arquivo `Calculator.psm1` com o seguinte conteúdo e mova as funções para esse arquivo:

    Calculator.psm1
    function Add-Numbers {
        param(
            [int]$a,
            [int]$b
        )
        return $a + $b
    }
    
    function Subtract-Numbers {
        param(
            [int]$a,
            [int]$b
        )
        return $a - $b
    }

  9. Testando o Módulo

    Agora, podemos testar o módulo. Atualize `Calculator.Tests.ps1` para importar o módulo antes de testar:

    Calculator.Tests.ps1
    Import-Module .\Calculator.psm1
    
    Describe 'Add-Numbers' {
        It 'should add two numbers correctly' {
            $result = Add-Numbers -a 5 -b 10
            $result | Should -Be 15
        }
    }
    
    Describe 'Subtract-Numbers' {
        It 'should subtract two numbers correctly' {
            $result = Subtract-Numbers -a 10 -b 5
            $result | Should -Be 5
        }
    }

Conclusão

Neste tutorial, você aprendeu a integrar o PowerShell com o Pester para criar e testar scripts automatizados. Abordamos desde a instalação do Pester até a criação de um módulo PowerShell com funcionalidades testadas. Essa prática ajuda a garantir a qualidade do seu código e permite que você identifique erros antes que eles impactem seus sistemas em produção. Com essa seta de ferramentas, você está mais bem preparado para desenvolver automações confiáveis e seguras.

Hashtags

#PowerShell #Pester #Automação #TestesUnitários #DesenvolvimentoDeSoftware