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.
- 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.
- 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:
|
|
- Configure o SonarQube: Com o SonarQube em funcionamento na porta 9000
localhost:9000
, você precisará configurá-lo para integrar com seu projeto Node.js.
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
”:
Em seguida, vamos gerar um token que o nosso aplicativo irá usar para se comunicar com o servidor do SonarQube:
E agora iremos selecionar qual é o tipo de Stack que queremos que o SonarQube realize o scan:
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:
|
|
Com as dependências instaladas, agora podemos rodar o nosso primeiro Scan no SonarQube com o comando abaixo:
|
|
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:
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:
|
|
Com o banco de dados e nossa aplicação em execução, poderemos agora executar nosso teste de cobertura:
|
|
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.
|
|
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.