[Baypiggies] How to determine what unit tests cover a code change?

Minesh B. Amin mamin at mbasciences.com
Thu Feb 3 02:24:36 CET 2011


Bill and Dirk make valid points. 

However, given the scale of your test suite and 
the fact that it takes 5 hours to run seems to imply you 
have a lot of moving parts. I am not sure how
difficult it would be to ensure that everything 
is written in Python, and that "-v" captures the 
sourcing of all files (hence my comment of capturing 
all dependencies, *.py, text, data, other scripts, etc etc).

Now, in terms of parsing the output of "strace", be 
sure to redirect output of your unittest to something 
else ... like

   strace -f -e trace=open \
          /bin/sh -c       \
             "python unittest.py        \
                     2>unittest.stderr  \
                     1>unittest.stdout" \
   2>unittest.strace

   ^^^^^^^^^A^^^^^^^ ^^^^^^^^^B^^^^^^^^

A => stderr        from just strace
B => stderr,stdout from "python ..."


This way, parsing output of strace should be much more 
manageable.

Finally, armed with the dependencies, a build system 
like SCons or Avery Pennarun's "redo" can be tricked 
into skipping over tests for which dependencies have 
not changed. At the end of the day, blow away all 
the computed dependencies, run all tests using strace, 
and recompute the dependencies.

Regards,
Minesh
 

On Wed, 2011-02-02 at 16:19 -0800, Lincoln Peters wrote:
> 
> What I eventually want to do is set up a continuous integration system
> so that the appropriate subset of unit tests is run immediately after
> each code change, and the full suite is run on a less frequent
> interval (maybe once per day).




More information about the Baypiggies mailing list