Android Instrumentation Test에서 특정 클래스의 coverage 출력

JVM의 테스트는 1 테스트, 혹은 1 테스트 클래스 마다 coverage를 간단하게 확인할 수 있다.
하지만 instrumentation test에서 비슷한 일을 하는 방법을 모르고, CI 맡기고 있었다.

그러나 역시 로컬에서 볼 수 있기를 원합니다

1. Run Test



CLI의 경우


adb shell am instrument -w -r --no_window_animation -e emma true -e class 'your.app.package.TestClassName', -e coverage true your.app.package.test/android.support.test.runner.AndroidJUnitRunner

(불필요한 파라미터가 있을지도)

Android Studio의 경우



Run/Debug Configurations에 Android Instrumentation Test 추가.
Module, Class(또는 Method)에 테스트 대상을 설정.
Instrumentation arguments에 다음 파라미터를 추가.
  • coverage: true
  • emma: true

  • 2. Get coverage


    adb pull /data/data/your.app.package/files/coverage.ec ./coverage.exec
    

    library의 테스트의 경우, your.app.package.test 에 보존되고 있는 모습.
    상기 패스는 emulator의 경우. 실기라면 패스가 다르다.

    coverageFile 파라미터로 저장처를 지정도 할 수 있다

    cf. htps : //로 ゔぇぺぺr. 안 d로이 d. 이 m / s 쓰오 / / st / 굉장히 d? hl = 그럼 # Amo p Chionsy x x

    3. Open coverage



    Android Studio에서 보는 경우 아래 메뉴에서 pull coverage.execAnalyze -> Show Code CoverageAnalyze -> Generate Coverage Report 로 HTML 출력도 할 수 있다

    Android Studio 4부터는 Run 메뉴 안으로 이동된 모습

    뭔가 또 하나 궁리하면 더 단계 줄일 수 있을지도.

    좋은 웹페이지 즐겨찾기