diff options
author | Alex Legler <alex@a3li.li> | 2011-02-25 20:55:46 +0100 |
---|---|---|
committer | Alex Legler <alex@a3li.li> | 2011-02-25 20:55:46 +0100 |
commit | 486951510d509368259e07fd2dd5b85bae8bc9ea (patch) | |
tree | 6b2d439634a71393115bbc7c2c8484d0b6be441a /doc | |
parent | Schema update (diff) | |
download | glsamaker-486951510d509368259e07fd2dd5b85bae8bc9ea.tar.gz glsamaker-486951510d509368259e07fd2dd5b85bae8bc9ea.tar.bz2 glsamaker-486951510d509368259e07fd2dd5b85bae8bc9ea.zip |
Add the rails rcov plugin from http://svn.codahale.com/rails_rcov
Diffstat (limited to 'doc')
-rw-r--r-- | doc/README_RCOV_PLUGIN | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/doc/README_RCOV_PLUGIN b/doc/README_RCOV_PLUGIN new file mode 100644 index 0000000..eb9d84c --- /dev/null +++ b/doc/README_RCOV_PLUGIN @@ -0,0 +1,86 @@ + = rails_rcov plugin for Rails + +rails_rcov provides easy-to-use Rake tasks to determine the code coverage of +your unit, functional, and integration tests using Mauricio Fernandez's rcov +tool. + +== Installation + +First, install rcov from Mauricio's web site +[http://eigenclass.org/hiki.rb?rcov]. Make sure it's on your system path, so +that typing +rcov+ on the command line actually runs it. THIS PLUGIN DOESN'T DO +ANYTHING BESIDES GENERATE ERRORS UNLESS YOU INSTALL RCOV FIRST. RCOV CONTAINS +ALL THE MAGIC, THIS PLUGIN JUST RUNS IT. + +Second, install this plugin. If your project is source-controlled by Subversion +(which it should be, really), the easiest way to install this is via Rails' +plugin script: + + ./script/plugin install -x http://svn.codahale.com/rails_rcov + +If you're not using Subversion, or if you don't want it adding +<tt>svn:externals</tt> in your project, remove the <tt>-x</tt> switch: + + ./script/plugin install http://svn.codahale.com/rails_rcov + +== Usage + +For each <tt>test:blah</tt> task you have for your Rails project, rails_rcov +adds two more: <tt>test:blah:rcov</tt> and <tt>test:blah:clobber_rcov</tt>. + +Running <tt>rake test:units:rcov</tt>, for example, will run your unit tests +through rcov and write the code coverage reports to +<tt>your_rails_app/coverage/units</tt>. + +Running <tt>test:units:clobber_rcov</tt> will erase the generated report for the +unit tests. + +Each rcov task takes two optional parameters: RCOV_PARAMS, whose argument is +passed along to rcov, and SHOW_ONLY, which limits the files displayed in the +report. + +RCOV_PARAMS: + # sort by coverage + rake test:units:rcov RCOV_PARAMS="--sort=coverage" + + # show callsites and hide fully covered files + rake test:units:rcov RCOV_PARAMS="--callsites --only-uncovered" + +Check the rcov documentation for more details. + +SHOW_ONLY is a comma-separated list of the files you'd like to see. Right now +there are four types of files rake_rcov recognizes: models, helpers, +controllers, and lib. These can be abbreviated to their first letters: + + # only show files from app/models + rake test:units:rcov SHOW_ONLY=models + + # only show files from app/helpers and app/controllers + rake test:units:rcov SHOW_ONLY=helpers,controllers + + # only show files from app/helpers and app/controllers, with less typing + rake test:units:rcov SHOW_ONLY=h,c + +Please note that rails_rcov has only been tested with a Bash shell, and any +other environment could well explode in your face. If you're having trouble +getting this to work on Windows, please take the time to figure out what's not +working. Most of the time it boils down to the different ways the Window shell +and the Bash shell escape metacharacters. Play around with the way rcov_rake +escapes data (like on line 73, or 78) and send me a fix. I don't have a working +Windows environment anymore, so leaving it up to me won't solve anything. ;-) + +== Resources + +=== Subversion + +* http://svn.codahale.com/rails_rcov + +=== Blog + +* http://blog.codahale.com + +== Credits + +Written by Coda Hale <coda.hale@gmail.com>. Thanks to Nils Franzen for a Win32 +escaping patch. Thanks to Alex Wayne for suggesting how to make SHOW_ONLY not be +useless.
\ No newline at end of file |