py-cover task is now in the main pyAntTasks project
The py-cover task is now integrated into the
project tree.
Fear, Loathing, Uncertainty, Doubt, Laziness, Impatience and Hubris
The py-cover task is now integrated into the
project tree.
Posted by
debedb
at
1:09 AM
1 comments
Labels: ant, code coverage, continous integration, pyanttasks, python, testing
I decided it would be good to have a coverage report of our Python code, with nice visualization like Clover. So I took Ron Smith's PyAntTasks, and addedUpdate
This code has been integrated into the main tree.
py-cover task to them. This will
run coverage for every test, and a cumulative one. In other words, you can
see what code a particular test exercises, and what code all the tests
in your tree exercise.
This also modifies py-test task to include
packagedtests attribute - see below.
The newly added py-cover task runs Ned Batchelder's coverage.py (download it separately), and is specified as follows in
your build.xml:
<py-cover
packagedtests="false"
pythonpath="${pythonpath}"
reportsDir="${reports}"
coverage="${tools}/coverage.py">
<tests dir=".">
<include name="**Test.py">
</tests>
<src dir="${quickRoot}">
<include name="**/*.py">
<include name="*.py">
</src>
</py-cover>
Here, <tests> is a FileSet specifying tests to run, <src;> is a FileSet specifying source code to cover.
The attributes are:
reportsDir - where the coverage reports go
packagedtests
- this idiosyncrasy is prompted by our
tree setup. If this attribute is true it means that
the test files reside in Python packages, false otherwise.
(In our case, they do not; they are in the tree but are not packages. Note
that the original py-test task assumed they are in packages,
I ahve changed this too).
coverage - path to coverage.py on your system (which you downloaded separately, right?)
P.S. I know about the colorize.py thingie, but I rolled my own (uglier, of course) for this one.
Posted by
debedb
at
4:22 PM
0
comments
Labels: ant, code coverage, continous integration, continuum, python, tools