[rspec-users] How should I interpret RCov, code coverage?
Andrei Ursan
lists at ruby-forum.com
Thu Aug 25 04:14:58 EDT 2011
First of all I'm new to RCov.
I'm having a rails application with around 20 models and 20 controllers
+ helpers and others.
And I've got an unusual good RCov test coverage, 39%(total) and 31%(code
coverage) - and this with only 12 RSpec examples.
I'm running RCov with the following options:
t.rcov_opts = "--callsites --xrefs --no-comments --rails --exclude
test/*,spec/*,features/*,factories/*,gems/*"
What kind of heuristic is RCov using? I'm reading its manual
http://www.linuxcertif.com/man/1/rcov/ and it says:
> rcov is a code coverage tool for Ruby. It creates code coverage
> reports showing the unit test coverage of the target code.
>
> rcov does "statement coverage", also referred to as "C0 coverage analysis". It
> tests, if each line of the source code has been executed.
>
> rcov is typically used to find the areas of a program that have not
> been sufficiently tested. It reports, what code has not been run by
> any test cases.
That being said, it means that:
(in my case) 31% Lines Of Code of the application logic have been
executed by the test files. E.g. if a method has been executed for one
test case than that method (the LOC that represent that method) are 100%
tested. The bad side is that if a test file loads a Class A (just by
including its name into its logic), and doesn't execute any of its
method, the methods signatures of that class will count as executed LOC
100% tested, therefore the number can grow quite easy. **Right?**
Is an RCov code coverage of 100% really good? Because in my opinion a
method should be tested for more than one case but rcov doesn't care
about this :(.
Is there another tool which does a better job on rails projects than
RCov on test coverage?
--
Posted via http://www.ruby-forum.com/.
More information about the rspec-users
mailing list