# 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.