ปัญหาอย่างหนึ่งของการพัฒนา Android app คือ การทดสอบ
แต่เมื่อเขียนชุดการทดสอบแล้ว มักจะมีการเปิดให้ทำ Code coverage เสมอ
ซึ่งเครื่องมือที่ใช้คือ Jacoco
แต่ปัญหาที่ตามมาจากการเปิดให้ทำ Code coverage คือ ความช้าของการ build
ดังนั้นเรามาเปิดหรือปิดความสามารถนี้กันหน่อย

เริ่มต้นด้วยการเปิดใช้งาน Code coverage แบบปกติ

ทำการแก้ไขไฟล์ build.gradle ดังนี้

จากนั้นลองทดสอบ run หน่อย
โดยในตัวอย่างนี้จะเป็นการ run ผ่าน command line ทั้งหมด
ซึ่งเพิ่ม –profile เพื่อดูรายละเอียดของการทำงานทั้งหมด

$./gradlew  clean assembleDebug --profile

ผลที่ได้คือ
จะพบว่ามี task ชื่อว่า :app:transformClassesWithJacocoForDebug
ใน debug build เสมอ ลองดูกันเอาว่า ใช้เวลาการทำงานเท่าไร ?
แน่นอนว่า เยอะพอได้เลย

ประเด็นที่น่าสนใจคือ ถ้าบางครั้งไม่ต้องการให้ run Code coverage ละ จะทำอย่างไร ?

ต้อง comment ในไฟล์ build.gradle ตลอดไหม ?
ไม่น่าจะดีนะ
ดังนั้นเลยใช้วิธีการส่งค่าจาก command line ไปเลยสิ
ดังนั้นแก้ไขไฟล์ build.gradle กันหน่อย

จากนั้นทำการ run อีกครั้ง ซึ่งทำงานเหมือนเดิม
เพิ่มเติมคือส่งค่า coverage เข้ามา เพื่อให้ทำการ run Code coverage ด้วย
ด้วยคำสั่ง

$./gradlew -Pcoverage clean assembleDebug --profile

แต่ถ้าไม่ต้องการใก้ run Code coverage ก็ไม่ต้องส่งมา

$./gradlew  clean assembleDebug --profile

เพียงเท่านี้ เราก็สามารถควบคุมการทำงานของ Code coverage ได้แล้ว
แถมเวลาการ build ก็เร็วขึ้นอีกด้วย