Featured image of post Como Integrar SonarQube em Projetos Node.js: Análise de Código e Cobertura de Testes

Como Integrar SonarQube em Projetos Node.js: Análise de Código e Cobertura de Testes

No mundo do desenvolvimento de software, garantir a qualidade do código é fundamental.

No mundo do desenvolvimento de software, garantir a qualidade do código é fundamental. É aí que entra o SonarQube, uma ferramenta poderosa que nos ajuda a analisar e aprimorar nossos programas. Se você está em busca de uma maneira eficiente de monitorar a qualidade do seu código e avaliar a cobertura de testes, você está no lugar certo! Neste tutorial, vamos explorar como integrar o SonarQube com um aplicativo feito em Node.js e analisar os resultados dos testes de cobertura.

O que é o SonarQube?

Para quem ainda não conhece, o SonarQube é uma ferramenta de análise de código SAST (Static application security testing) que fornece insights valiosos sobre a qualidade do seu software. Ele examina seu código-fonte e oferece relatórios detalhados sobre potenciais problemas, como bugs, vulnerabilidades e código duplicado. Além disso, o SonarQube é excelente para medir a cobertura de testes, ajudando a garantir que seu código esteja bem testado e robusto.

Passo a Passo: Integrando SonarQube com um Aplicativo Node.js

Nesse post vou simplificar o processo de configuração usando o Docker, que facilita muito a implementação e a gestão das dependências.

  1. Clonando o Projeto de Exemplo

👌 Para começar, você pode clonar o repositório do meu projeto de amostra feito com Node.js, isso fornecerá uma base sólida para que possamos aplicar o SonarQube e ver a análise em ação. O repositório está disponível aqui no meu repositório do: GitHub.

  1. Configurando o SonarQube com Docker

Para otimizar o processo de configuração do SonarQube, utilizaremos imagens Docker. O Docker permite criar ambientes isolados e replicáveis de forma rápida e fácil. Aqui está um resumo do que você precisa fazer:

  • Baixe e execute a imagem do SonarQube: Utilizaremos uma imagem Docker oficial para garantir que nossa configuração seja a mais atual e estável possível:
1
    docker run -d --name sonarqube -p 9000:9000 sonarqube
  • Configure o SonarQube: Com o SonarQube em funcionamento na porta 9000 localhost:9000, você precisará configurá-lo para integrar com seu projeto Node.js.

Tela de Login do SonarQube

Aqui, nosso servidor SonarQube está em execução na porta 9000. Agora iremos criar um nome de projeto e uma chave de projeto. Em seguida realize o login com as credênciais base login: “admin” & senha: “admin”, clique em seguida redefina sua senha e logo após criaremos o nosso primeiro projeto na opção “Create a local project”:

Criando um Projeto Local

Em seguida, vamos gerar um token que o nosso aplicativo irá usar para se comunicar com o servidor do SonarQube:

Project Key

E agora iremos selecionar qual é o tipo de Stack que queremos que o SonarQube realize o scan:

Project Stack

Configurando a Conectidade da Nossa Aplicação Node com o SonarQube

Primeiro, precisamos adicionar um novo arquivo chamado sonar-project.js, com esse arquivo, vamos definir o ponto de comunicação da nossa aplicação em nodo com o sonarqube, arquivo de teste unitário, chave do projeto e o token que geramos anteriormente:

Executando o Aplicativo

Precisamos agora instalar as dependências do nosso projeto em NodeJS e para isso, será necessário executar o npm, como no comando abaixo:

1
    npm install

Com as dependências instaladas, agora podemos rodar o nosso primeiro Scan no SonarQube com o comando abaixo:

1
    npm run sonar

Sonar Scanner

Aguarde o Scanner do Sonar finalizar, quando finalizado, basta agora acessar a interface do projeto e lá estará toda a análise feita pela SonarQube e a cobertura de código:

Resultado

Realizando o teste de cobertura

Agora, para testarmos a nossa aplicação, faremos uma rápida análise de cobertura, para isso, será necessário executar nossa aplicação em container e o banco de dados “mongodb” executando o seguintes comandos:

1
    docker compose up -d 

Com o banco de dados e nossa aplicação em execução, poderemos agora executar nosso teste de cobertura:

1
    npm run test

Com isso, será feito um teste de cobertura e logo em seguida gerará um diretório chamado de “coverage” que será exportado para o SonarQube quando realizado um novo scan.

1
    npm run sonar

SonarScan

Espero que este artigo tenha sido útil para você. Se você tiver alguma dúvida ou comentário, sinta-se à vontade para deixar um comentário abaixo.

comments powered by Disqus
Framework utilizado Hugo
Desenvolvido por Lucas Oliveira