Le paquet PECL n'est pas inclus dans les tests, mais sont disponibles sur » Github. Il y a 2 types de tests : les tests PHPUnit et les tests C.
Pour exécuter les tests, vous devez télécharger le driver depuis Github (les tests sont dans le dossier tests/). Vous aurez également besoin de » PHPUnit pour les exécuter. PHPUnit peut être installé via PEAR (regardez également les instructions d'installation, il nécessite quelques pré-requis).
Quelques tests attendent des alertes ou des erreurs, aussi, vous devez définir error_reporting dans votre php.ini à E_STRICT | E_ALL afin qu'ils puissent être réalisés. Si vous ne le faites pas, vous obtiendrez des erreurs qui indiquent que le test attendait une alerte ou une erreur.
Pour exécuter ces tests, assurez-vous qu'il y a un serveur MongoDB fonctionnant localement sur le port 27017. Avant de rapporter des erreurs, essayez d'exécuter ces tests sur la dernière version de développement de MongoDB : en effet, il y a des tests sur des fonctionnalités qui ne sont pas encore sur la version stable.
La suite de tests utilise la base de données "phpunit". Si vous utilisez une base de données portant un tel nom dans votre application, assurez-vous de pointer MongoDB sur un dossier de données différent avant d'exécuter les tests.
Assurez-vous d'être dans le dossier principal des sources du driver téléchargé depuis Github. Puis, exécutez :
$ phpunit tests/MongoSuite.php
Les tests C vérifie principalement les fonctions internes qui ne sont pas exposées via PHP. Si vous souhaitez exécuter ces tests, vous devez compiler PHP avec l'option --enable-embed. Puis, placez-vous dans le dossier tests et exécutez make. Ceci va créer un binaire appelé unit. Exécutez ce binaire unit pour lancer les tests. Ils ne requièrent pas de base de données pour être exécutés.
Si un test passe, il affichera un point ("."). Si un test échoue, les tests s'arrêteront. Rapportez tous les échecs.
Si make ne peut trouver la bibliothèque PHP embarqué (libphp5.so) ou les fichiers d'en-têtes, vous devez les spécifier dans la variable PHP_PATH.
Exécuter make clean pour supprimer tous les objets utilisés pour les tests.
Si vous exécutez ces tests avec valgrind, vous ne devriez pas avoir d'erreurs sur les accès à la mémoire.
Veuillez rapporter tous les échecs ou les erreurs dans » l'outil de suivi des bogues. Il se peut que des tests ne soient pas exécutés, c'est normal et vous pouvez les ignorer.
Les nouveaux tests sont toujours les bienvenus ! Vous pouvez contribuer en proposant des nouveaux tests sur toutes les fonctionnalités.