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 displays +rcov+ window, whose major-mode is compilation-mode. Therefore you can jump to uncovered code by 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 +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.