SonarQube: Configuração remota e local para projetos .NET
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.
Sumário
- 1 Vamos lá!
- 1.1 Para começar vamos fazer a instalação e configuração local, para isso você deve seguir os passos:
- 1.2 Instale o OpenCover (versão 4.6.519) via comando, ou pelo nuget no projeto de teste unitário, executando o seguinte comando:
- 1.3 Agora crie um arquivo .bat usando um editor de texto qualquer adequando os comandos a seguir para os do seu projeto.
- 2 Extra
- 3 Configuração Sonarqube remoto usando o Azure DevOps
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.
![sonarqube](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-1-1-1024x466.png)
Insira o trecho de código <DebugType>Full</DebugType> entre as tags <PropertyGroup></PropertyGroup>
![](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-2-1024x484.png)
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
![](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-3-1024x139.png)
Salve com o nome “sonar-execute” e com a extensão .bat
![sonarqube](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-4-1024x712.png)
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).
![sonarqube](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-5-1024x355.png)
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).
![sonarqube](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-6-1024x258.png)
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”.
![](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-7-1024x169.png)
Lembre-se de preencher a guia Advanced com a pasta que se encontra o arquivo .bat na aba Working folder.
![](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-8-1024x190.png)
Após realizadas as configurações acima, rode a build remota através da opção Queue.
![sonarqube](https://dtidigital.com.br/wp-content/uploads/2019/03/Figura-9-1024x1024.png)
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!
Desenvolvimento de Software
Confira outros artigos
![](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2Fmecanismos-de-acompanhamento.webp&w=1024&q=75)
Mecanismos de Acompanhamento no Desenvolvimento de Software
O uso de mecanismos de acompanhamento é imprescindível no mundo do desenvolvimento de software e pode potencializar a eficiência digital. O acompanhamento efetivo das operações é fundamental para garantir a entrega de soluções digitais de sucesso. Na nossa empresa, utilizamos uma metodologia única, o dti evolve, que incorpora inteligência artificial (IA) para acelerar nosso processo de […]
Desenvolvimento de Software
![Fundo de código com celular apresentando eficiência digital com copilot](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2FGitHub-copilot-eficiencia-dti.webp&w=1024&q=75)
Eficiência digital com copilot: um caso de uso do GitHub
Em um mundo em constante evolução tecnológica, otimizar o tempo e potencializar a eficiência digital se torna cada vez mais crucial. Portanto, vamos apresentar alguns experimentos que estão sendo implementados com o Git Hub Copilot em busca de maior eficiência digital. Certamente quem nos acompanha sabe que estamos experimentando e introduzindo as melhores ferramentas de […]
Desenvolvimento de Software
![Engenharia de Prompt - Como conversar com Ia](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2FShutterstock_2422157137-1.png&w=1024&q=75)
Engenharia de Prompt: A Arte de Conversar com a IA
Sumário1 Falando a Linguagem das Máquinas2 O que é Engenharia de Prompt?3 A Importância da Engenharia de Prompt em Ação: Aplicações do Mundo Real 4 Princípios-chave da Engenharia de Prompt Eficaz4.1 Desconstruindo o Prompt:4.2 Técnicas de Engenharia de Prompt:4.3 Combinando Técnicas e Criando sua Obra-Prima:5 As Armadilhas da Engenharia de Prompt: Navegando pelos Limites dos Modelos […]
Desenvolvimento de Software