[TIP] Announce: Pygora 0.0.1

Ronny Pfannschmidt Ronny.Pfannschmidt at gmx.de
Sat Oct 16 10:12:13 PDT 2010


On Sat, 2010-10-16 at 12:11 -0400, Alfredo Deza wrote:
> 
> 
> On Fri, Oct 15, 2010 at 8:23 PM, Ronny Pfannschmidt
> <Ronny.Pfannschmidt at gmx.de> wrote:
>         
>         On Sun, 2010-02-28 at 16:38 -0500, Alfredo Deza wrote:
>         > After Ned Batchelder's talk in Python I spent a few minutes
>         talking
>         > about how nice it is to have as much (or even more!) test
>         code lines
>         > than source code lines.
>         >
>         > I have put together a small script that will count the lines
>         of code
>         > in a given directory and will compare them to your test code
>         lines
>         > with a nice output (e.g. percentage, total lines, lines per
>         file
>         > etc...).
>         >
>         > Ideally, this could become a plugin for Nose (or py.test),
>         but for
>         > now, it will create an executable symlink so you can run it
>         anywhere.
>         >
>         > The project page: http://code.google.com/p/pygora/
>         >
>         > I am using distribute to package Pygora, you can install it
>         by:
>         >
>         >         sudo easy_install pygora
>         >
>         > And, if you were not wondering already, the name comes from
>         a *goat*:
>         > Pygora Goat is a cross between the Pygmy Goat and the Angora
>         Goat that
>         > produces three distinct kinds of fleece and has the smaller
>         size of
>         > the Pygmy.
>         > Source: Wikipedia
>         >
>         >
>         > Pygora could do better in telling what lines to count with a
>         nice
>         > regex, but this first release will get you an idea,
>         enhancements will
>         > follow.
>         
>         
>         you might want to take a look at py.countloc which is shipped
>         by py (and
>         will be in pycmd in future) 
>         
>         py.countloc provides way better numbers (imho)
>         
>         
> 
> 
> Since I had py.test installed I tried out py.countloc, and I have a
> few comments...
> 
> 
> The idea behind pygora is to have a comparison ratio, to know where
> your test line numbers
> are related to those of your source code, this is not provided by
> py.countloc
> 
> 
> In the latest pygora version (you have actually replied to the first
> announcement dated in February) 
my misstake, i was in the middle of working trough the backlog of the
ml, and mindlessly replied to the first mail instead of finding the
latest one
> speed was improved a lot, and in fact after benchmarking both tools
> pygora takes almost 
> half the time to go through a path and get the metrics.
> 
> 
> For example, in a directory with around 1,5 million lines of code
> these are the times I got (best out of 3 runs):
> 
> 
> py.countloc  4.04s user 0.50s system 99% cpu 4.572 total
> 
> 
> pygora  2.52s user 0.66s system 97% cpu 3.253 total
interesting timings, i think py.countloc was only optimized for accurate
numbers, not raw speed, i'll take a look at that once my todo is shorted
out
> 
> 
> There is also no way to tell py.countloc to avoid printing *every*
> single file it is counting. This is specially 
> annoying for 1.5m lines of code, also, no way of filtering or
> excluding certain files.
> 
> 
> All of those options are available with pygora (e.g. verbose option,
> filtering etc...) although implementing 
> them in py.countloc shouldn't be a hard thing to do.
> 
> 
> Having said that, I find that the source line detection in py.countloc
> seems a bit more accurate. I initially had 
> trouble in deciding for example if docstrings should count as part of
> the source code or not (I ended including them).
thats why i wanted to point you at it after trying a easy_installed
pygora
> 
> 
> In my specific case, I like something fast that reports what I need.
> If I want a ratio to be able to compare, this output
> seems too much for me:
> 
> 
>            number of testfiles 794
>  number of non-empty testlines 158805
>                number of files 6906
>      number of non-empty lines 1342471
> 
> 
> Compared to:
> 
> 
> Test lines    =     214669
> Source lines =    1241449
> Total lines =    1456118
> 
> 
> Your test code is 17.29% of your source code
> 
i guess i'm more interested in the other stats,
usually the ratio of test lines vs tested code lines
isn't that interesting (i tend to have more test lines than code lines)
whats more interesting to me is the ratio of code/branch coverage

> 
>  
>         >
>         >
>         > Thanks for an awesome an inspiring talk Ned!
>         >
>         >
>         >
>         >
>         > --
>         > Alfredo Deza
>         >
>         
>         > _______________________________________________
>         > testing-in-python mailing list
>         > testing-in-python at lists.idyll.org
>         > http://lists.idyll.org/listinfo/testing-in-python
>         
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20101016/ab50c137/attachment-0001.pgp>


More information about the testing-in-python mailing list