woong's

Android FindBugs 연동하기 본문

Develop/Android

Android FindBugs 연동하기

dlsdnd345 2016. 2. 13. 22:21
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Jenkins Find Bug


프로그램의 품질을 측정하기 위한 가장 확실한 방법은 테스트
버그의 가능성이 있는 코드를 검출

Find Bug 준비


Android 에 Find Bug 를 사용하기 위해서 우선 Find Bug lib 등 파일이 필요합니다.

http://findbugs.sourceforge.net/downloads.html 

경로를 통해서 Find Bug 관련 파일을 받아 오겠습니다.






이러한 파일이 있습니다 .

여기서 lib 파일 안에 findbugs-ant.jar 를 android - sdk - tools - lib 에 넣어 주면 되겠습니다.




Find Bug 설정

Test 프로젝트의 local.properties 안에 findbugs.home 을 설정해야 합니다 .

방금전 findbug 관련 파일 다운로드 한 경로를 지정해 주면 되겠습니다.





여기서 경로 지정에서 \\ 슬래쉬가 두개여야 파일을 찾아간다.


자동화로 진행하시는분은 




이와 같이 진행하시면 됩니다.


adt-bundle-windows-x86_64-20130729\sdk\tools\ant 폴더안에 
 Build.xml 에 해당 코드는 추가 합니다.


1
2
3
4
5
6
7
8
9
<taskdef name="findbugs" classpath="C:\adt-bundle-windows-x86_64-20130729\sdk\tools\lib\findbugs-ant.jar" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
 
    <target name="findbugs">
        <mkdir dir="reports" />
        <findbugs home="${findbugs.home}" output="xml"  outputFile="reports/findbugs.xml" excludeFilter="findbugs-exclude.xml">
            <auxClasspath path="${android.jar}" />
            <class location="${out.dir}" />
        </findbugs>
    </target>


classpath 는 자신의 해당 jar 를 맞춰주면 되겠습니다 .




여기 까지 완료가 되면 커맨드 창을 통해서 실행을 하면 되겠습니다.




성공메세지가 확인 되면 Test 프로젝트 "reports/findbugs.xml" 에 파일이 생성된것을 확인할수 있습니다.

여기서 꼭 커밋을 통해서 svn 에 파일을 올려주셔야합니다.


Jenkins Find Bug 설정




Jenkins 설정이 아닌 Test 프로젝트 설정에 오면 이와 같은 항목을 볼수 있습니다.

Test 프로젝트에 만들어진 findbugs.xml 경로를 입력해 주면 되겠습니다.





Jenkins  빌드시에 findbug 도 갱신해주어야 하기때문에 ant 명령어를 

clean emma debug install test findbugs 로 수정 해야 합니다.







이제 준비가 완료 됬습니다. Build Now 를 진행하면 이러한 화면을 볼수 있습니다.

PS

화면 이미지 처럼 R.java 를 생략하시고 싶으신분은


 

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
        <Class name="~.*\.R\$.*"/>
        <Bug code="Nm"/>
    </Match>
</FindBugsFilter>
 


excludeFilter="findbugs-exclude.xml" 이름에 맞춰 이름을 작성해주시고 Test 프로젝트에 넣어주시면 되겠습니다.






R.java 를 제거하고 실행한 결과 입니다 . 원래 결과는 갯수 카운트를 하는데 제거하니 갯수 카운트는 0 으로 나오고 경고로 카운트를 보여주게 됩니다.

그래프 카운트도 6개를 가리키던게 0 으로 내려온것을 볼수 있습니다.


P.S



간혹 이러한 에러를 보실수 있습니다.

이에서는 findbugs.jar 찾지 못해서 라고 나와있는데 

위에서 findbugs.home 경로가 잘못 됬을 경우에 나타나는 오류 입니다.

필자의 경우 ant.properties 가 아닌 local.properties  에 넣어서 나타난 경우입니다.
 
또한 경로에 \ 를 하나로 했을경우에도 이러한 경우가 발생하였습니다. \\ 로 넣어주시면 되겠습니다.


Comments