Testing in GeoNode

The community encourages the Test Driven Development (TDD) and the contribution
to write new tests to extend the coverage. Ideally every model, view, and utility should becovered by tests.
GeoNode has Unit, Integration and Javascript tests. The Unit tests are located
in the tests file of every django app (Maps, Layers, Documents, Catalogue,
Search, Security etc).

The Integration, CSW and smoke tests are located under the tests folder).

The tests are meant to be ran using the SQLite database, some of them may fail using PostgreSQL or others.

If running them in development mode make sure to have the jetty server

shut down otherwise the test could get stuck. To make sure it is run:

$ paver stop

Unit Tests

To run the unit tests make sure you have the virtualenv active (if running

GeoNode under virtualenv) then run:

$ paver test

This will produce a detailed test report.

It’s possible to run just specific apps tests by using the django command:

$ python manage.py test app/tests.py

For example:

$ python manage.py test geonode.maps.tests

To run a single testcase or method (omit the method name to run the whole class), for example:

$ python manage.py test geonode.maps.tests:MapsTest.test_maps_search

These tests are based on the Python/django unit test suite.

Integration Tests

To run the unit tests make sure you have the virtualenv active (if running

GeoNode under virtualenv) then run:

$ paver test_integration

To run the csw integration test run:

$ paver test_integration -n geonode.tests.csw

Like the unit tests above, it is also possible to test specific modules, for example:

$ paver test_integration -n geonode.tests.integration:GeoNodeMapTest.test_search_result_detail

To test with with coverage:

$ python manage.py test geonode.maps.tests – –with-coverage –cover-package=geonode.maps

These tests are based on the Python/django unit test suite.

Javascript Tests