These are instructions for collecting code coverage data for android instrumentation and JUnit tests. For Clang(C++) code coverage refer toclang coverage.
In order to use JaCoCo code coverage, we need to create build time pre-instrumented class files and runtime.exec files. Then we need to process them using thebuild/android/generate_jacoco_report.py script.
target_os="android"use_jacoco_coverage=true
Now when building, pre-instrumented files will be created in the build directory.
Run tests, with option--coverage-dir <directory>
, to specify where to save the .exec file. For example, you can run chrome JUnit tests:out/Debug/bin/run_chrome_junit_tests --coverage-dir /tmp/coverage
.
The coverage results of JUnit and instrumentation tests will be merged automatically if they are in the same directory.
generate_jacoco_report.py
, for example:build/android/generate_jacoco_report.py \--format html \--output-dir/tmp/coverage_report/ \--coverage-dir/tmp/coverage/ \--sources-json-dirout/Debug/ \
Then an index.html containing coverage info will be created in output directory:
[INFO] Loading execution data file /tmp/coverage/testTitle.exec.[INFO] Loading execution data file /tmp/coverage/testSelected.exec.[INFO] Loading execution data file /tmp/coverage/testClickToSelect.exec.[INFO] Loading execution data file /tmp/coverage/testClickToClose.exec.[INFO] Loading execution data file /tmp/coverage/testThumbnail.exec.[INFO] Analyzing 58 classes.
--output-file
instead of--output-dir
since only one file will be generated as XML or CSV report.build/android/generate_jacoco_report.py \--format xml \--output-file/tmp/coverage_report/report.xml \--coverage-dir/tmp/coverage/ \--sources-json-dirout/Debug/ \
or
build/android/generate_jacoco_report.py \--format csv \--output-file/tmp/coverage_report/report.csv \--coverage-dir/tmp/coverage/ \--sources-json-dirout/Debug/ \
--include-substr-filter
option to choose jars in the desired directory. Eg. for generating coverage report for Clank internal repobuild/android/generate_jacoco_report.py--format html \--output-dir/tmp/coverage_report/--coverage-dir/tmp/coverage/ \--sources-json-dirout/java_coverage/ \--include-substr-filter obj/clank