Diurno

SonarQube: Configuração remota e local para projetos .NET

por: Magno Santos

data: 21/03/2019

Compartilhar no facebook
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no linkedin
Compartilhar no facebook
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no linkedin

Esse tutorial irá explicar de forma simples e clara como fazer a instalação do SonarQube, tanto local quanto remota através do Azure DevOps, além de abordar questões sobre a cobertura de código e análises em geral.

Vamos lá!

Para começar vamos fazer a instalação e configuração local, para isso você deve seguir os passos:

  • Baixar o servidor do SonarQube através do link https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
  • Extrair o sonarqube-7.6.zip no disco local C:\
  • Executar o StartSonar.bat através do caminho C:\sonarqube-7.6\bin\windows-x86-64\StartSonar.bat (tem que ter o Java JRE instalado)
  • Adicionar a pasta sonar nas variáveis de ambiente

Instale o OpenCover (versão 4.6.519) via comando, ou pelo nuget no projeto de teste unitário, executando o seguinte comando:

  • dotnet add

C:\Projeto_Teste\src\Backend\Application\Projeto_Teste.Backend.AppService.TestesUnitarios\Projeto_Teste.Backend.AppService.TestesUnitarios.csproj package OpenCover –version4.6.519

Edite todos os arquivos .csproj e a solução principal.

Figura 01: Configuração da solução e dos projetos

Insira o trecho de código <DebugType>Full</DebugType> entre as tags <PropertyGroup></PropertyGroup>

Figura 02: Inserção dos comandos nos projetos

Agora crie um arquivo .bat usando um editor de texto qualquer adequando os comandos a seguir para os do seu projeto.

  • Instale o sonarscanner 
    •  dotnet tool install –global dotnet-sonarscanner
  • Inicialize o sonarscanner 
    •  dotnet sonarscanner begin /k:”Projeto_Teste”/d:sonar.cs.opencover.reportsPaths=”%CD%\opencover.xml”
  • Buildar o projeto 
    • dotnet build C:\Projeto_Teste\ Projeto_Teste.sln
Figura 03: Criando o script

 

Salve com o nome “sonar-execute” e com a extensão .bat

Figura 04: Salvando o script no formato .bat

Execute o sonar-execute.bat dentro do projeto onde foi salvo. 

Para subir a análise do seu projeto de teste, basta criar um arquivo .bat como no passo anterior e salvar com o nome “sonar-only-opencover”. Assim será feito um scanner do projeto de teste para geração do relatório de cobertura (coverage).

  • %USERPROFILE%\.nuget\packages\opencover\4.6.519\tools\OpenCover.Console.exe – output:”%CD%\opencover.xml” -register:user -target:”C:\Program Files\dotnet\dotnet.exe” – targetargs:”test Projeto_Teste.Backend.AppService.TestesUnitarios\AppService.TestesUnitarios.csproj” -oldstyle
  • Use o comando “dotnet sonarscanner end” para finalizar a análise e enviar os dados para o servidor

Execute o sonar-only-opencover.bat

Extra

Caso queira que algum projeto seja excluído da análise do SonarQube, insira o trecho de código <SonarQubeExclude>true</SonarQubeExclude> entre as tags<PropertyGroup></PropertyGroup>

Pronto! Agora é só acessar o http://localhost:9000 usando login e senha “admin” e terá as análises e relatórios do seu código.

Configuração Sonarqube remoto usando o Azure DevOps

Após configurado o Sonarqube local, basta ajustar a build no Pipelines do Azure DevOps.

Clique em “Edit” para realizar configuração da build que deseja ativar a cobertura de código. Acesse a aba “Prepare analysis on SonarQube” e preencha seu campo obrigatório Project Key, além do nome do projeto (Project Name).

Figura 05: Configuração do “Prepare analysis on SonarQube”

Lembre-se de preencher a guia Advanced. Nela, poderá definir o caminho que se localiza o arquivo opencover.xml (sonar.cs.opencover.reportsPaths), além de ser possível também excluir alguns arquivos específicos da solução da cobertura de código na análise (sonar.coverage.exclusions).

Figura 06: Guia Advanced do “Prepare analysis on SonarQube”

Posteriormente, preencha a guia Run sonar-only-opencover.bat. Nesta etapa, deve-se apontar o caminho do .bat criado na configuração local. Para isso, preencha a aba “Path”.

Figura 07: Definição do caminho do .bat criado.

 

Lembre-se de preencher a guia Advanced com a pasta que se encontra o arquivo .bat na aba Working folder.

Figura 08: Preenchimento da pasta que se encontra o .bat criado.

Após realizadas as configurações acima, rode a build remota através da opção Queue.

Figura 09: Execução da build

Execute a build e pronto!

Caso encontre algum erro que quebre a build, verifique seu “Log”. Caso a build seja bem sucedida, entre no link: http://sonarqube.”seu_servidor”.com.br:9000/. Os dados analisados pelo SonarQube, inclusive a cobertura de código, deverão ser apresentados.

Esperamos ter ajudado vocês leitores.

Até a próxima!