Android에서 코드 커버리지를 어떤 느낌으로 측정할 수 있는지

소개



지난번 의 안드로이드에서 JUnit이 어떤 느낌으로 움직이는지에 이어, 이번은 코드 커버리지가 어떠한 느낌으로 측정할 수 있는지에 대해 소개합니다.

설정 사용



Android의 빌드 시스템에서는 new-build-system 의 문서에 있는 것처럼, 0.10.0부터 코드 커버리지의 구조로서 Jacoco가 지원되고 있습니다. 이 메커니즘을 사용하면 JUnit을 실행할 때 얼마나 앱 코드를 포괄하고 있는지 측정할 수 있습니다.

설정을 사용하려면 build.gradle에 testCoverageEnabled 옵션을 추가하기만 하면 됩니다. 다음 행을 추가합니다.
    buildTypes {
        debug {
            testCoverageEnabled true
        }
    }

샘플 앱



이전과 마찬가지로 사용 중인 앱은 다음 URL에 게시됩니다.
  • htps : // 기주 b. 코 m / 좋았어 / 후 st 치 ck ぃ st

  • 소스 코드를 얻으려면 다음과 같이 git 명령을 사용하여 얻으십시오.
    $ git clone https://github.com/cattaka/FastCheckList.git
    

    코드 커버리지 보고서 작성



    코드 커버리지 보고서를 만들려면 프로젝트의 루트 디렉터리에서 다음 명령을 실행합니다.
    또한 실제 기기를 연결하지 않았거나 에뮬레이터를 시작하지 않은 경우 "No connected devices!"라는 오류가 발생합니다.
    $ ./gradlew createDebugCoverageReport
    
    

    이 명령을 실행하면 다음 위치에 html 파일로 보고서가 작성됩니다. 앱의 모듈명이나 Build Flavors의 지정에 따라서는 디렉토리 구조가 약간 다르므로, 그 경우는 적절하게 읽어 주세요.
  • ./app/build/outputs/reports/coverage/debug/index.html

  • 보고서 보기



    보고서에는 명령과 분기의 포괄도가 표시됩니다. 명령어의 포괄성이란 코드의 처리에서 JUnit 실행 중에 실제로 실행한 비율을 의미합니다. 분기의 포괄도는 if 문과 같은 분기의 포괄도를 의미합니다.

    리포트의 톱 페이지에서는 Java의 패키지 단위에 망라도를 집계한 값이 표시됩니다.
    이것들은 클릭해 전개해 가면 패키지 > 클래스 > 메소드의 순서로 망라도를 열람할 수 있습니다.



    메소드보다 상세하게 전개하면(자), 코드가 표시되어 실제로 실행된 것은 녹색으로, 실행되지 않았던 것은 빨간색으로 표시됩니다. 빨간색이 많으면 테스트 커버리지가 충분하지 않음을 의미합니다.



    빨간색 부분이 많으면 테스트가 충분하지 않으므로 테스트 항목을 추가하는 것이 좋습니다. 그러나 적용 범위는 애플리케이션의 품질을 나타내는 지표 중 하나일 뿐이므로 어둠에 추가하면 좋지 않습니다.

    커버리지 보고서 샘플



    샘플 앱 커버리지 보고서는 여기

    결론



    간단하지만 안드로이드에서 코드 커버리지를 측정하는 흐름을 소개했습니다. 어떻게 어떻게 움직이는지 전해졌습니까?

    다음 번은 CI를 통해 테스트 및 코드 커버리지 측정을 자동화하는 방법을 소개합니다.

    좋은 웹페이지 즐겨찾기