관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[안드로이드] Android Unit Test Coverage with Jacoco 안드로이드 통합 테스트 하는 방법 (Kotlin) 본문

안드로이드/Unit Test

[안드로이드] Android Unit Test Coverage with Jacoco 안드로이드 통합 테스트 하는 방법 (Kotlin)

막무가내막내 2020. 8. 23. 19:59
728x90

 

 

 

안녕하세요 최근에 unit test 코드를 작성중인데요.  coverage test(통합 테스트) 를 할 일이 생겼습니다. 이 때 Jacoco 를 사용한다 해서 그에 대해 찾아보았는데요.

그래서 처음에 다른 분들의 블로그를 참고하여 gradle에

    group = "Reporting"
    description = "Generate Jacoco coverage reports"

    def coverageSourceDirs = ['src/']

    classDirectories = fileTree(
            dir: "${buildDir}/intermediates/classes/dev/debug",
            excludes: ['**/R.class',
                       '**/R$*.class',
                       '**/BuildConfig.*',
                       '**/Manifest*.*',
                       'com/android/**/*.class']
    )

    sourceDirectories = files(coverageSourceDirs)
    executionData = files("${buildDir}/jacoco/testDevDebugUnitTest.exec")

    reports {
        xml.enabled = true
        html.enabled = true
    }

를 하는데 계속 접근 에러가 떠서 실패가 떠서 다른 방법으로 돌렸습니다.

 

 

그래서 제 해결방법에 대해 간단히 소개하려고 합니다.

 

1. 먼저 앱 수준의 gradle 파일에 다음을 추가해줍니다.

jacoco 플러그인과 testCoverEnabled 를 true로 설정해주시면 됩니다. 나머지 설정은 필요 없습니다. !!

apply plugin: 'jacoco'

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug{
            testCoverageEnabled = true
        }
    }

 

 

 

2.  그 후 안드로이드 스튜디오 우측에 있는 gradle 을 누르고 app을 선택한 후 gradle(+,-  오른쪽에에 있는 코뿔소 아이콘) 을 눌러줍니다.

 

그러면 다음과 같은 창이 뜨고 밑에처럼 입력하여 통합테스트리포트를 생성해주도록 합시다.

 

 

 

3. 그 다음 connectedAndroidTest 를 실행시켜 안드로이드 테스트와 연결해줍니다.

 

 

 

4. 여기까지 했다면 마지막으로 프로젝트의 app - build- reports - androidtests- connected 밑에 가면 통합테스트 결과를 볼 수 있습니다. web(html) 으로 되어있으므로  밑 그림과 같이 우클릭하여 브라우저로 켜주도록 합시다. androidtests- coverage 에서도 다른 형태의 결과를 보실 수 있습니다.

 

 

[결과]

그럼 다음과 같은 화면을 볼 수 있으실겁니다.

 

 

 

이상 안드로이드(Kotlin) 에서 Jacoco 를 적용하여 통합 테스트 결과를 볼 수 있었습니다.

댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!

728x90
Comments