Translate

Thứ Bảy, 24 tháng 5, 2014

Batch Script chạy Code Coverage report cho Android app

Trong mô hình phát triển ứng dụng mới theo kiểu TDD (Test driven) hay CI (Continuous Integration) thì việc đảm bảo code luôn chạy chuẩn thông qua Unit Test là rất quan trọng. Tuy nhiên một trong những vấn đề nổi cộm là developer rất lười viết Unit Test, hoặc viết một cách đối phó nên chất lượng không tốt.

Vậy làm thế nào để bạn đảm bảo team của mình đã viết Unit Test đầy đủ và có ích?

Một trong các giải pháp là hãy kiểm tra Code Coverage (nghĩa là unit test case đã coverage được bao nhiêu phần trăm method, line of code trong source code của app) bằng các tool/plugin có sẵn.


Dạng thức của Code Coverage report thể hiện như sau:



Bài toán trên áp dụng được cho nhiều thể loại/nền tảng ngôn ngữ, ở đây mình sẽ giới thiệu một script (window batch) do mình viết để tự động chạy code coverage report cho ứng dụng Android. (tất nhiên bạn không cần dùng script này mà tự làm bằng tay hoặc tool khác cũng được, script này chỉ tiện hơn và giúp bạn ko phải nhớ lệnh và gõ nhiều :).

Script thực hiện CodeCoverage report bằng APACHE ANT và EMMA tool, 2 tool phổ biến và được recommend bởi Google. Dưới đây là giới thiệu và các step thực hiện, cơ bản thì bạn chỉ cần double click vào script là chạy và sau đó xem report!

--------------------------------------------------------------------------------------------------
 Script created by KienDN 2014/05/20
 This is Windows batch script to output CodeCoverage report on ANDROID app during UnitTest
 It is based on APACHE ANT and EMMA tool
 It will only work on the emulator or a rooted device.

 PRE-CONDITION
 1. Put JDK/APACHE ANT/AndroidSDK home directory to your environment PATH
 Example:
 JAVA_HOME = c:\Program Files\Java\jdk1.7.0_17
 PATH = d:\AndroidDevTool\apache-ant-1.9.4\bin\;
 PATH = d:\AndroidDevTool\adt-bundle-windows-x86_64-20130219\sdk\platform-tools\;
 PATH = d:\AndroidDevTool\adt-bundle-windows-x86_64-20130219\sdk\tools\

 2. Put your App and UnitTest app and this Script file on the same directory
 Example
 - WorkspaceFolder
 ---- AndroidApp
 ---- AndroidAppTest
 ---- RunCodeCoverage.bat

 RUN SCRIPT
 1. Double-click RunCodeCoverage.bat and input ANDROID_APP_FOLDER and ANDROID_TESTAPP_FOLDER folder
 2. Or Open Window command line tool and type:
 RunCodeCoverage.bat ANDROID_APP_FOLDER ANDROID_TESTAPP_FOLDER
 Example:  RunCodeCoverage.bat SimpleActivity SimpleActivityTest

 VIEW COVERAGE REPORT
 1. Open ANDROID_TESTAPP_FOLDER/bin folder
 2. See coverage.html
--------------------------------------------------------------------------------------------------

Download script ở đây: RunCodeCoverage.bat

Không có nhận xét nào:

Đăng nhận xét