Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: build/android/docs/coverage.md

Issue 2426583004: Update EMMA code coverage documentation. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Android code coverage instructions 1 # Android code coverage instructions
2 2
3 This is instruction for code coverage for android instrumentation and junit test s. 3 These are instructions for collecting code coverage data for android
4 instrumentation and junit tests.
4 5
5 [TOC] 6 [TOC]
6 7
7 ## How EMMA coverage works 8 ## How EMMA coverage works
8 9
9 In order to use EMMA code coverage, we need to create build time **.em** file an d runtime 10 In order to use EMMA code coverage, we need to create build time **.em** files
10 **.ec** file. Then we need to process them using the 11 and runtime **.ec** files. Then we need to process them using the
11 build/android/generate_emma_html.py script. 12 build/android/generate_emma_html.py script.
12 13
13 ## How to collect EMMA coverage data 14 ## How to collect EMMA coverage data
14 15
15 1. Build your APK with the GN arg emma_coverage=true. 16 1. Use the following GN build arguments:
16 ``` 17 ```
17 gn args out-gn/Debug 18 target_os = "android"
18 > target_os = "android" 19 emma_coverage = true
19 > emma_coverage = true 20 emma_filter = "org.chromium.chrome.browser.ntp.*,-*Test*,-*Fake*,-*Mock*"
20 ``` 21 ```
21 By doing so, **.em** files will be created in out-gn/Debug. 22 The filter syntax is as documented for the [EMMA coverage
23 filters](http://emma.sourceforge.net/reference/ch02s06s02.html).
24
25 Now when building, **.em** files will be created in the build directory.
22 2. Run tests, with option `--coverage-dir <directory>`, to specify where to save 26 2. Run tests, with option `--coverage-dir <directory>`, to specify where to save
23 the .ec file. For example, you can run chrome junit tests: 27 the .ec file. For example, you can run chrome junit tests:
24 `out-gn/Debug/bin/run_chrome_junit_tests --coverage-dir /tmp/coverage`. 28 `out/Debug/bin/run_chrome_junit_tests --coverage-dir /tmp/coverage`.
25 3. Now we have both .em and .ec files. We can merge them and create a html file, 29 3. Turn off strict mode when running instrumentation tests by adding
26 using generate_emma_html.py. For example, generate_emma_html.py can be called 30 `--strict-mode=off` because the EMMA code causes strict mode violations by
27 this way: 31 accessing disk.
32 4. Use a pre-L Android OS (running Dalvik) because code coverage is not
33 supported in ART.
34 5. The coverage results of junit and instrumentation tests will be merged
35 automatically if they are in the same directory.
36 6. Now we have both .em and .ec files. We can create a html report using
37 `generate_emma_html.py`, for example:
28 `build/android/generate_emma_html.py --coverage-dir /tmp/coverage/ 38 `build/android/generate_emma_html.py --coverage-dir /tmp/coverage/
29 --metadata-dir out-gn/Debug/ --output example.html`. 39 --metadata-dir out/Debug/ --output example.html`.
30 Then an example.html containing coverage info will be created: 40 Then an example.html containing coverage info will be created:
31 `EMMA: writing [html] report to 41 `EMMA: writing [html] report to
32 [<your_current_directory>/example.html] …` 42 [<your_current_directory>/example.html] …`
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698