Projeto Aquabot Testing — Parte 5

Projeto Aquabot Testing — Parte 5

Olá pessoas.

Hello Hi GIF - Hello Hi Duck - Discover & Share GIFs | Hello gif, Hi gif,  Image fun
Olá

Agora que já temos alguns testes automatizados, podemos nos perguntar:

Precisamos ter todos os testes automatizados para colocar o projeto rodando no servidor?

E a resposta é: NÃO!

Nos Acerca GIFs - Get the best GIF on GIPHY
Ehh… Não

Geralmente, quando trabalhamos em um time e/ou ambiente ágil, temos uma ferramenta de integração contínua configurada de modo que a cada caso de teste automatizado que fazemos um ‘pull request‘ nossos testes rodam em uma pipeline configurada.

Agora, nós vamos configurar uma ferramenta de integração contínua para rodar nossos testes \o/.

New trending GIF online: party, kevin bacon, footloose, party gif
Festa

GitHub actions

Verificando as várias ferramentas de integração contínua disponíveis, utilizei o seguinte parâmetro de escolha: como nosso projeto já está no GitHub porquê não escolher o GitHub Actions? 😆

“GitHub Actions é uma plataforma de integração contínua e entrega contínua (CI/CD) que permite você de automatizar suas pipelines de build, teste e implantação.” Link.

Ele nos permite automatizar o build dos nossos projetos de teste e rodar nossos testes em pipelines.

Primeiro, vamos criar uma pasta ‘.github/workflows/’ para armazenar nossos arquivos de workflow.

Então, criamos um arquivo ‘.yml’ para configurar nosso workflow. Vamos observar o que eu fiz para passarmos por cada configuração:

name: cypress-aquabot-testing
on: [push]
jobs:
  run-cypress-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - run: npm install
      - run: npx cypress run

name: ⇾ É um campo opcional, mas ´é bom definir porquê é o nome do workflow que vai aparecer na aba Actions.

on: [push] ⇾ Especifica o gatilho deste workflow, eu decidi colocar o ‘push’ porque eu só quero que nossos testes rodem quando eu subo uma modificação no projeto. Há muitas outras possíveis configurações, veja mais neste link.

jobs: ⇾ Agrupa todas as tarefas que rodam no workflow definido.

run-cypress-tests: ⇾ Define uma tarefa chamada ‘run-cypress-test’.

runs-on: ubuntu-latest ⇾ Configura em qual runner a tarefa vai rodar. No nosso caso o sistema operacional não importa, pode ser tanto Windows, Linux ou Mac, então eu decidi colocar o Linux. Veja mais neste link.

steps: ⇾ Agrupa todos os passos de uma tarefa pai.

uses: actions/checkout@v2 ⇾ Esta palavra-chave especifica que o passo será rodado na v2 da açãoactions/checkout. Essa ação coloca seu repositório no runner.

uses: action/setup-node@v2 with: node-version: ’14’ ⇾ Esta configuração utiliza a v2 da ação action/setup-node que instala a versão específica do Node.js.

run: ⇾ Esta palavra-chave informa a tarefa o comando a ser executado no runner.

Agora, na palavra-chave ‘run’, vamos passar os comandos de setup do projeto, do mesmo jeito que passaríamos para qualquer um que quisesse rodar nossos testes.

Primeiro, para instalar todas as dependências node do nosso projeto nós precisamos executar o seguinte comando:

run: npm install

E para rodarmos nossos testes diretamente sem a necessidade de abrir a interface do cypress, precisamos do seguinte comando:

run: npx cypress run

Para simplificar, adicionamos um script com o comando acima no arquivo package.json.

"scripts": {
    "test": "cypress run"
}

E assim nós podemos colocar um comando ‘npm’ no arquivo workflow:

run: npm test

Assim vai funcionar da mesma maneira que o primeiro comando, mas ao invés de ‘npx‘ usamos comandos ‘npm‘.

E é isso, agora é só colocar nosso código no repositório remoto e a magia vai acontecer.

Magic GIFs | Tenor
magica

Nosso workflow rodou com sucesso:

Esta imagem tem um texto alternativo em branco, o nome da imagem é image-2-1024x352.png
GitHub actions workflow
Esta imagem tem um texto alternativo em branco, o nome da imagem é image-3-1024x768.png
Resultado dos testes

Podem verificar o progresso do projeto neste link.

Varemos mais formas de melhorar o arquivo workflow no próximo post.

E é isso pessoal. Nos vemos no próximo post com mais testes.

High Tide: That's All, Folks! | Thats all folks, Pig gif, Looney tunes
E é isso pessoal

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *