Skip to content

Instantly share code, notes, and snippets.

@scovl
Created March 19, 2024 03:23
Show Gist options
  • Save scovl/a3fa4110b39a3a7e92556e4e687d1763 to your computer and use it in GitHub Desktop.
Save scovl/a3fa4110b39a3a7e92556e4e687d1763 to your computer and use it in GitHub Desktop.
Instrumentando sonar no java gradle

Para instrumentar um projeto Java usando Gradle no SonarQube e forçar a coleta de testes unitários via JaCoCo, você precisa seguir alguns passos. Vou te guiar por um processo básico:

  1. Configuração do Gradle: Primeiro, certifique-se de que seu projeto Gradle esteja configurado para usar o JaCoCo para relatórios de cobertura de código e o plugin do SonarQube para análise de código.

  2. Adicione o Plugin JaCoCo: No seu arquivo build.gradle, adicione o plugin JaCoCo para habilitar a geração de relatórios de cobertura de teste:

    plugins {
        id 'java'
        id 'jacoco'
        id 'org.sonarqube' version '3.3' // Use a versão mais recente compatível
    }
  3. Configure o JaCoCo: Configure o JaCoCo para criar relatórios de cobertura de código. Isso pode ser feito dentro do bloco jacocoTestReport:

    jacocoTestReport {
        reports {
            xml.enabled true
            html.enabled true
        }
    }
  4. Adicione o Plugin SonarQube: Certifique-se de que o plugin SonarQube esteja configurado no seu arquivo build.gradle. Você já adicionou a dependência no passo 2, agora configure o servidor SonarQube e outros parâmetros necessários:

    sonarqube {
        properties {
            property 'sonar.projectName', 'NomeDoProjeto'
            property 'sonar.projectKey', 'nome.do.projeto'
            property 'sonar.host.url', 'http://localhost:9000' // URL do seu servidor SonarQube
            property 'sonar.login', 'seu_token_de_autenticacao'
            property 'sonar.java.binaries', 'build/classes/java/main'
            property 'sonar.java.test.binaries', 'build/classes/java/test'
            property 'sonar.jacoco.reportPaths', 'build/jacoco/test.exec'
            property 'sonar.coverage.jacoco.xmlReportPaths', 'build/reports/jacoco/test/jacocoTestReport.xml'
        }
    }
  5. Execute os Testes e a Análise SonarQube: Após configurar o projeto, execute os testes unitários e gere o relatório de cobertura do JaCoCo. Depois, execute a análise do SonarQube:

    Para gerar relatórios de cobertura de teste e executar a análise SonarQube, você pode usar os seguintes comandos Gradle na linha de comando:

    ./gradlew test jacocoTestReport sonarqube

    Isso executará os testes unitários, gerará relatórios de cobertura de código com JaCoCo e, em seguida, executará a análise SonarQube usando as informações de cobertura e outras métricas.

  6. Verifique os Resultados no SonarQube: Após a execução do comando, verifique os resultados no SonarQube acessando a URL do seu servidor SonarQube. Você verá as métricas de qualidade do código do seu projeto, incluindo a cobertura de testes.

Lembre-se de que esses passos são um guia básico. Dependendo das especificidades do seu projeto e da configuração do seu ambiente, talvez seja necessário ajustar algumas configurações. Garanta também que você esteja usando as versões mais recentes dos plugins e do Gradle para evitar problemas de compatibilidade.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment