Jump to content

Usando Cobertura de Código Java integrado com Jenkins


Postagens Recomendadas

  • Administradores

Tópico originalmente criado por: @Jonathan Santos

 

A ideia de integração continua já discutida em um post anterior ( https://ciranda.me/tsdn/blog-do-desenvolvimento-tecnospeed/post/usando-cobertura-de-codigo-para-delphi-integrado-com-jenkins 3 ), será dada continuidade, nesse post, mostrando agora uma ferramenta para auxilio de cobertura de código para projetos feitos em Java.

As ferramentas que usaremos para fazer a cobertura de código serão plugins do próprio jenkins, diferente da ferramenta usada para Delphi ( deplhi-code-coverage. ) citada no post anterior, que por sua vez só geravam relatórios que seriam usados pelo jenkins.

Usaremos dois plugins que se complementam, são eles o Sonar( http://www.sonarqube.org/ 1 ) e o JaCoCo (https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin 3) .

Perceba que para o uso desses plugins, é necessário uma plataforma jenkins já instalada e configurada um job para seu projeto que deseja monitorar( http://jenkins-ci.org/ ).

O primeiro passo é fazer o download do sonarqube no link já citado. Descompacte e selecione a pasta correspondente ao seus sistema operacional dentro da pasta bin. Execute o prompt de comando(cmd) nessa pasta e execute o “StartSonar.bat”, ele funciona como um servidor com um banco de dados em memoria, usado para a analise do código.

 

20000a8cdf9fac39c1a34840c6b4341f55126b6f

 

O segundo passo para o usos desses pluguins é sua instalação.Vá até a opção “Gerenciar Jenkins” no menu principal e escolha a opção gerenciar pluguins. Selecione a aba “Disponíveis” e procure pelo plugin Sonar e JaCoCo.

 

ba346cafd4c700302b1ff3cfcf7ecef56ca968c8

 

Depois de sua instalação, dentro do menu “Gerenciar Jenkins” selecione a opção configurar sistema, procure pela seção do plugin Sonar e adicione-o(necessário selecionar um nome). Clique em avançado e coloque o ip da máquina em que o server que o servidor sonar estiver rodando, caso esteja rodando na mesma máquina, basta deixar vazio que a configuração default é a localhost(máquina local).

 

06422a15a0f3d9d5204452f84755abbf354c0515

 

Agora vá até o job que deseja configurar e selecione “Configurar” e vá até a opção “Add post-build action”. Selecione a opção “Record JaCoCo coverage report”. Ainda na mesma opção adicione também o“Sonar”.

 

8641ca7534e239b335be7fd4d55f0c58f5ff342b

 

As duas opções devem funcionar automaticamente, sem serem reconfiguradas. Caso se tenha problemas selecione a “?” nas opções que possuem dicas de como ser feita sua configuração.
PS: Perceba que as configurações de como irá surgir o sol(status do job) precisa ser informado em porcentagem de cobertura.

O ultimo passo agora é verificar se o arquivo .pom do seu projeto java está com JaCoCo inserido em sua seção de plugins.

01. < build >

02. < plugins >

03. < plugin >

04. < groupId >org.jacoco</ groupId >

05. < artifactId >jacoco-maven-plugin</ artifactId >

06. < version >${jacoco.version}</ version >

07. < executions >

08. < execution >

09. < goals >

10. < goal >prepare-agent</ goal >

11. </ goals >

12. </ execution >

13. < execution >

14. < id >report</ id >

15. < phase >prepare-package</ phase >

16. < goals >

17. < goal >report</ goal >

18. </ goals >

19. </ execution >

20. </ executions >

21. </ plugin >

22. </ plugins >

23. </ build >

Depois disso basta construir o projeto e ele apresentará os dados da cobertura de código.

Agora será possível ver no próprio job as linhas que estão sendo cobertas pelas linhas de código e as que não estão, divididos em porcentagem.

5c4db381e718dfd3b39fd5fa602827baaf0218ab

 

Clicando no link Sonar que agora se encontra no job, podemos ver os dados gerados pelo sonar. Podemos verificar desde dividas técnicas (segundo regras configuradas) até problemas de escrita no codigo.

 

12cbc58818654d6daf324df7e6070766b91cc1fc
 

É possível ainda incluir muito mais plugins em seu job do Jenkins, que ajudam a tornar o deploy de seus produtos com ainda mais qualidade!

Maiores informações sobre os plugins podem ser encontradas nas referências desse post.

Referencias
http://www.sonarqube.org/measure-coverage-by-integration-tests-with-sonar-updated/ 

http://www.eclemma.org/jacoco/trunk/doc/maven.html 

http://www.methodsandtools.com/tools/tools.php?sonar

http://www.lordofthejars.com/2012/08/jacoco-jenkins-plugin.html

http://java.dzone.com/articles/jacoco-jenkins-plugin 

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...