Hi all,
I moved testing framework (gunittest package) from sandbox to trunk in r61225 [1, 2].
You can run all tests from GRASS source code top directory using:
python -m grass.gunittest.main …/grassdata/ nc_spm_08 nc
You should be in GRASS session and in some testing location (it will not be used but to be sure that nothing is damaged). First parameter is path to GISDBASE, second is the name of location (you should use sample NC smp location) and third parameter should be ‘nc’. Running tests may take few minutes and then open a file testreport/index.html with test results.
I’m working on documentation [3] but assertion methods are well documented already and there is already a lot of examples in the source code. See directories named testsuite for example test files (ignore testsuite directory in root for now). Modules which have tests are t.rast.extract, r.gwflow, g.mlist, g.mremove, g.list, and r.slope.aspect.
You can write tests for raster modules pretty easily and in limited way it is possible to write tests for vector modules too. See the available assert methods [4, 5]. When writing consider that you are sample NC spm location.
Tests for modules such as r.info or r.univar are good starting point in learning how to write tests and moreover, it would be advantageous to have these core modules covered. If you would prefer rewriting rather then writing, there is a lot of tests (or Pythod doctests) here and there which might be integrated into the new framework. I can give you some pointers.
I’m getting feedback from Soeren but I would like to hear from other developers, too. So, let me know what you think.
Vaclav
[1] http://trac.osgeo.org/grass/browser/grass/trunk/lib/python/gunittest
[2] http://trac.osgeo.org/grass/changeset/61225
[3] http://trac.osgeo.org/grass/browser/grass/trunk/lib/python/docs/src/gunittest_testing.rst (rendered by Trac see Sphinx doc for full documentation)
[4] http://trac.osgeo.org/grass/browser/grass/trunk/lib/python/gunittest/case.py?rev=61225
[5] https://docs.python.org/2/library/unittest.html#assert-methods
[6] http://trac.osgeo.org/grass/wiki/GSoC/2014/TestingFrameworkForGRASS