Test de GeoNode¶
La communauté encourage le Test Driven Development (ATS) et la contribution d’écrire de nouveaux tests pour étendre la couverture. Idéalement, chaque modèle, vue et utilitaire doivent etre couverte par des tests.
GeoNode a des Unit, intégration et tests de Javascript. Les tests unitaires sont situés dans le fichier de tests de chaque appli django (cartes, couches, Documents, Catalogue, recherche, sécurité etc.).
L’intégration, les CCF et les tests de fumée sont situés sous le dossier tests).
Avertissement
Les essais sont destinés à être exécuté à l’aide de la base de données SQLite, certains d’entre eux risquent de ne pas utiliser PostgreSQL ou autres. C’est pourquoi ** supprimez ou renommez votre fichier local_settings.py avant d’exécuter les tests **.
- Si leur exécution en mode développement Assurez vous d’avoir le serveur jetty
fermer sinon le test pourrait se coincer. Pour vous assurer que c’est exécuté :
$ paver stop
Unit Tests¶
Pour exécuter l’unité essais Assurez-vous que vous avez le virtualenv active (si vous exécutez GeoNode sous virtualenv) puis exécutez :
$ paver test # or python setup.py test when testing development versions
Cela produira un rapport de test détaillé.
Il est possible d’exécuter des tests des applications spécifiques juste en utilisant la commande django :
$ python manage.py test app/tests.py
Par exemple:
$ python manage.py test geonode.maps.tests
Pour exécuter une méthode ou un seul test unitaire (omettre le nom de la méthode à exécuter l’ensemble de la classe), par exemple :
$ python manage.py test geonode.maps.tests:MapsTest.test_maps_search
Ces tests sont basés sur la suite de tests d’unité Python/django.
Tests d’intégration¶
Pour exécuter l’unité essais Assurez-vous que vous avez le virtualenv active (si vous exécutez GeoNode sous virtualenv) puis exécutez :
$ paver test_integration # or python setup.py test_integration when testing development versions
Pour exécuter la série de tests de l’intégration :
$ paver test_integration -n geonode.tests.csw
Comme les tests unitaires ci-dessus, il est également possible de tester des modules spécifiques, par exemple :
$ paver test_integration -n geonode.tests.integration:GeoNodeMapTest.test_search_result_detail
Faire l’essai avec une couverture :
$ python manage.py test geonode.maps.tests -- --with-coverage --cover-package=geonode.maps
Ces tests sont basés sur la suite de tests d’unité Python/django.
Tests de JavaScript¶
Note
Tests de JavaScript a été désactivé actuellement en GeoNode. Il existe un plan afin d’améliorer et de le réactiver à l’avenir.