Migrate to SDK 1.3.0-dev.5.2 observatory API
* --pin-isolates is replaced by --pause_isolates_on_exit
* the observatory /unpin query is now /resume
* collect_coverage --unpin-isolates is replaced with --resume-isolates
4 files changed
tree: 81c0449e4267b45e5e114cd1a80a859b7b29c319
  1. bin/
  2. lib/
  3. .gitignore
  4. AUTHORS
  5. codereview.settings
  6. LICENSE
  7. PATENTS
  8. pubspec.yaml
  9. README.md
README.md

Coverage

Coverage provides coverage data collection, manipulation, and formatting for Dart.

Tools

collect_coverage.dart collects coverage JSON from the Dart VM Observatory. format_coverage.dart formats JSON coverage data into either LCOV or pretty-printed format.

Collecting coverage from the VM

dart --enable-vm-service:NNNN --pause_isolates_on_exit script.dart
dart bin/collect_coverage.dart --port=NNNN -o coverage.json --resume-isolates

The --pause_isolates_on_exit VM flag is used to pause isolates from being on exit to allow coverage to be collected. If collect_coverage.dart is invoked before the script from which coverage is to be collected, it will wait until it detects a VM observatory port to which it can connect. An optional --connect-timeout may be specified (in seconds).

Collecting coverage from Dartium

dartium --remote-debugging-port=NNNN
# execute code in Dartium
dart bin/collect_coverage.dart --port=NNNN -o coverage.json

As noted above, collect_coverage.dart may be invoked before Dartium, in which case it will wait until it detects a Dartium remote debugging port, up to the (optional) timeout.

Formatting coverage data

dart bin/format_coverage.dart --package-root=app_package_root -i coverage.json

where app_package_root is the package-root of the code whose coverage is being collected. If --sdk-root is set, Dart SDK coverage will also be output.