blob: 0a179876c6571b6201a50775d3a7319f98d9d81f [file] [log] [blame] [view]
hzl1ccac192016-06-02 18:22:121# Android code coverage instructions
2
3This is instruction for code coverage for android instrumentation and junit tests.
4
5[TOC]
6
7## How EMMA coverage works
8
9In order to use EMMA code coverage, we need to create build time **.em** file and runtime
10**.ec** file. Then we need to process them using the
11build/android/generate_emma_html.py script.
12
13## How to collect EMMA coverage data
14
151. Build your APK with the GN arg emma_coverage=true.
16 ```
17 gn args out-gn/Debug
18 > target_os = "android"
19 > emma_coverage = true
20 ```
21 By doing so, **.em** files will be created in out-gn/Debug.
222. Run tests, with option `--coverage-dir <directory>`, to specify where to save
23 the .ec file. For example, you can run chrome junit tests:
24 `out-gn/Debug/bin/run_chrome_junit_tests --coverage-dir /tmp/coverage`.
253. Now we have both .em and .ec files. We can merge them and create a html file,
26 using generate_emma_html.py. For example, generate_emma_html.py can be called
27 this way:
28 `build/android/generate_emma_html.py --coverage-dir /tmp/coverage/
29 --metadata-dir out-gn/Debug/ --output example.html`.
30 Then an example.html containing coverage info will be created:
31 `EMMA: writing [html] report to
32 [<your_current_directory>/example.html] …`