Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
53 lines (29 sloc) 2.15 KB

rcov.el

rcov.el allows you to use rcov from Emacs conveniently.

  • Run unit tests and jump to uncovered code by C-x `
  • Run unit tests and save the current coverage status.
  • Run unit tests and jump to uncovered code introduced since the last run.
  • View cross-reference annotated code.

Installation

Copy rcov.el to the appropriate directory, which is in load-path then require it.

(require 'rcov)

Usage

There are some commands to run RCov in Emacs. All of them will display RCov window, whose major-mode is compilation-mode. This allow you to jump to uncovered code using C-x `. rcov-command-line, rcovsave-command-line, and rcovdiff-command-line define command line to run rcov. If you do not use RCov from Rake, you must modify them.

Finding uncovered code

Type the following while editing your program:

M-x rcov

Setting the reference point

RCov's --text-coverage-diff mode compares the current coverage status against the saved one. It therefore needs that information to be recorded before you write new code (typically right after you perform a commit) in order to have something to compare against. You can save the current status with the --save option. Type the following to save the current status in Emacs:

M-x rcovsave

If you do not use RCov from Rake, you must modify rcovsave-command-line variable.

Finding new uncovered code

Type the following to save the current status in Emacs:

M-x rcovdiff

Viewing cross-reference annotated code

If you read cross-reference annotated code, issue

rake rcov RCOVOPTS='-a'

at the beginning. This command creates a coverage directory and many *.rb files in it. Filenames of these Ruby scripts are converted from original path. You can browse them by normally C-x C-f. You can think of -a option as --xrefs option and output format is Ruby script. After find-file-ed annotated script, the major-mode is rcov-xref-mode, which is derived from ruby-mode and specializes navigation.

  • Tab and M-Tab goes forward/backward links.
  • Ret follows selected link.

This feature is useful to read third-party code or to follow control flow.