Coveralls.io

2015-03-20 Thread David Cantrell
I recently found coveralls.io, a service that works nicely with
travis-ci to generate coverage reports whenever I push changes to my
github repos. For example ...

This commit:
  https://github.com/DrHyde/perl-modules-Data-Compare/commit/6ad1fa9783f
caused this build:
  https://travis-ci.org/DrHyde/perl-modules-Data-Compare/jobs/55114220
which generated this coverage report:
  https://coveralls.io/builds/2155129/source?filename=lib%2FData%2FCompare.pm

It's a great service, and I recommend it. I followed these simple
instructions to get it working:
  
http://onionstand.blogspot.com.br/2015/03/how-to-add-online-code-badges-to-your.html

However, Coveralls appears to have some limitations, at least with its
default settings. Compare the report above with this report generated
for the same code:
  http://cpancover.com/latest//Data-Compare-1.25/lib-Data-Compare-pm.html

Coveralls appears to only count the number of statements hit and not
look at whether my tests cover all the conditions in my code. Given code
like this:

if($foo  $bar) { print Wibble }

Then Coveralls will report 100% coverage if you test it with $foo and
$bar true, because then every statement will get hit. Devel::Cover,
however, will only be truly happy if you test with all of the following:
  $foo false;
  $foo true, $bar false;
  $foo true, $bar true
so that you exercise all the possibilities that matter.

Does anyone know if there's some option I can tweak in Coveralls to turn
this on? Or is it a limitation of the website and/or the
Devel::Cover::Report::Coveralls module?

-- 
David Cantrell | top google result for internet beard fetish club

comparative and superlative explained:

Huhn worse, worser, worsest, worsted, wasted


Re: Coveralls.io

2015-03-20 Thread Paul Johnson
On Fri, Mar 20, 2015 at 11:42:32AM +, David Cantrell wrote:

 Coveralls appears to only count the number of statements hit and not
 look at whether my tests cover all the conditions in my code.

 Does anyone know if there's some option I can tweak in Coveralls to turn
 this on? Or is it a limitation of the website and/or the
 Devel::Cover::Report::Coveralls module?

Last time I looked, Coveralls only supported line coverage.  The report
module marks a line as covered if all of the statements on that line
have been covered.  That's about the best that can be done, I think,
until Coveralls supports more powerful coverage criteria.

Many languages can provide code coverage nowadays, but there are still
not many that provide as powerful coverage criteria as Devel::Cover does
for Perl.

-- 
Paul Johnson - p...@pjcj.net
http://www.pjcj.net


Re: Coveralls.io

2015-03-20 Thread David Cantrell
On Fri, Mar 20, 2015 at 01:56:45PM +0100, Paul Johnson wrote:
 On Fri, Mar 20, 2015 at 11:42:32AM +, David Cantrell wrote:
  Coveralls appears to only count the number of statements hit and not
  look at whether my tests cover all the conditions in my code.
  Does anyone know if there's some option I can tweak in Coveralls to turn
  this on? Or is it a limitation of the website and/or the
  Devel::Cover::Report::Coveralls module?
 Last time I looked, Coveralls only supported line coverage ...

Fair enough. It's still a damned useful service, and I recommend it. At
least, I'll recommend it until I write my own nasty hack that will do
better :-)

[wanders off to think about how to send Devel::Cover output from Travis
to his own machine]

-- 
David Cantrell | Godless Liberal Elitist

Please stop rolling your Jargon Dice and explain the problem
you are having to me in plain English, using small words.
  -- John Hardin, in the Monastery