Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 2069

[Android] เปิดปิดการทำงานของ Jacoco (Code coverage) ตามที่ต้องการ

$
0
0

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

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

ทำการแก้ไขไฟล์ build.gradle ดังนี้ [gist id="47ed25ff8f55f29b709665b9ca5fc0a2" file="build1.gradle"] จากนั้นลองทดสอบ run หน่อย โดยในตัวอย่างนี้จะเป็นการ run ผ่าน command line ทั้งหมด ซึ่งเพิ่ม --profile เพื่อดูรายละเอียดของการทำงานทั้งหมด [code] $./gradlew clean assembleDebug --profile [/code] ผลที่ได้คือ จะพบว่ามี task ชื่อว่า :app:transformClassesWithJacocoForDebug ใน debug build เสมอ ลองดูกันเอาว่า ใช้เวลาการทำงานเท่าไร ? แน่นอนว่า เยอะพอได้เลย

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

ต้อง comment ในไฟล์ build.gradle ตลอดไหม ? ไม่น่าจะดีนะ ดังนั้นเลยใช้วิธีการส่งค่าจาก command line ไปเลยสิ ดังนั้นแก้ไขไฟล์ build.gradle กันหน่อย [gist id="47ed25ff8f55f29b709665b9ca5fc0a2" file="build2.gradle"] จากนั้นทำการ run อีกครั้ง ซึ่งทำงานเหมือนเดิม เพิ่มเติมคือส่งค่า coverage เข้ามา เพื่อให้ทำการ run Code coverage ด้วย ด้วยคำสั่ง [code] $./gradlew -Pcoverage clean assembleDebug --profile [/code] แต่ถ้าไม่ต้องการใก้ run Code coverage ก็ไม่ต้องส่งมา [code] $./gradlew clean assembleDebug --profile [/code] เพียงเท่านี้ เราก็สามารถควบคุมการทำงานของ Code coverage ได้แล้ว แถมเวลาการ build ก็เร็วขึ้นอีกด้วย

Viewing all articles
Browse latest Browse all 2069

Trending Articles