node.js & tests & github (ai)

A melhor forma de rodar testes automatícamente

  • ligeiro Deividy Metheler Zachetti
  • 2023-08-14
blog-detail-hero

Olá, tudo bem? Sou o Ligeiro e hoje vamos falar sobre GitHub Actions e como rodar testes automaticamente em todos os commits do seu repositório.

No vídeo, vamos usar o repositório Argument Validator como exemplo. Ele está um pouco desatualizado e usa Karma para rodar os testes, mas nós vamos dar uma refatorada nele e configurar os testes para serem executados automaticamente em cada commit.

Primeiro, vamos remover tudo relacionado a Karma e Grunt do repositório. Em seguida, vamos instalar as dependências necessárias para rodar os testes usando Mocha. Para isso, basta executar o comando npm install no terminal.

Agora, podemos rodar os testes usando o seguinte comando: ./node_modules/.bin/mocha spec. No entanto, se você tiver muitos testes, será necessário passar um parâmetro para o comando acima, para que ele rode todos os testes. O parâmetro é *.js, então o comando ficaria: ./node_modules/.bin/mocha '*.js'.

Agora que sabemos como rodar os testes, vamos configurar o GitHub Actions para que eles sejam executados automaticamente em cada commit. Para isso, vamos criar um diretório chamado .github no repositório e, dentro dele, um diretório chamado workflows. Dentro do diretório workflows, vamos criar um arquivo chamado test.yml.

No arquivo test.yml, vamos configurar o GitHub Actions para que ele execute os testes em cada push no branch master. Para isso, vamos usar as seguintes ações:

  • actions/checkout@v2: essa ação faz o checkout do repositório no GitHub Actions.
  • actions/setup-node@v2: essa ação configura a versão do Node.js a ser usada nos testes.
  • npm install: essa ação instala as dependências do projeto.
  • npm run test: essa ação roda os testes usando o comando que configuramos anteriormente.

O arquivo test.yml ficaria assim:

name: Test
on:
  push:
    branches:
      - master
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup Node
        uses: actions/setup-node@v2
        with:
          node-version: 16
      - name: Install Dependencies
        run: npm install
      - name: Run Tests
        run: npm run test

Agora, basta commitar o arquivo test.yml e pushar no repositório. Os testes serão executados automaticamente em cada push no branch master.

Espero que tenham gostado deste tutorial sobre GitHub Actions e como rodar testes automaticamente em cada commit. Até a próxima!


Esse blog post foi escrito utilizando AI ( especificamente whisper-large ) com o projeto https://github.com/S4mpl3r/youtube2blog.

O vídeo abaixo foi transcrito e utilizado como base para gerar o texto: