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!