MapScript Unit Tests (Re: OGR/WKT)

Sean Gillies sgillies at FRII.COM
Wed Aug 10 17:25:18 EDT 2005


On Aug 9, 2005, at 2:29 PM, Steve Lime wrote:

> I probably should take you up on the offer (thanks), but then again I =
> should be=20
> doing that myself as well. Lemme try it myself with you and Sean as =
> sounding boards
> if that's ok. I gotta get the RFC up-to-date first anyway.
>
> Steve

Steve,

I just committed a new test case to 
mapscript/python/tests/cases/shapetest.py as an example for new 
shape/WKT tests. See the ShapeWKTTestCase class near the end of the 
file.

If I were starting from scratch, I'd set up the unit testing framework 
differently (and better). It's a bit obscure, but coming from a Perl 
background should prepare you well ;) As it is, each file in 
tests/cases ending in *test.py is a test module, with modules for each 
of the mapscript classes. Any of these can be executed like

     $ python shapetest.py

or

     $ python shapetest.py -v

for more verbose output. The main() method of the module runs all the 
test* members of every TestCase-derived class in the file. Adding a new 
test is as simple as writing a new class, and is automatically added to 
the test suite. There is a script called runalltests.py in tests/cases 
that aggregates the tests in all modules, and can be run like

     $ python runalltests.py -v

For my convenience I have made a shell script in my mapscript/python 
directory which cd's to tests/cases, runs all the tests and returns to 
mapscript/python. This allows me to make a preliminary build of 
mapscript, and then test this same prelim build

(from mapscript/python)

     $ python setup.py build
     $ ./runalltests

These Python mapscript tests are not the ideal tests of MapServer's C 
code, but will improve along with improvements to MapServer's C API 
that allow us to shave away the code in the SWIG layer.

Sean

--
Sean Gillies
sgillies at frii dot com
http://zcologia.com



More information about the mapserver-dev mailing list