je la structure du dossier suivant:PHP: Inclure uniquement les fichiers lors de l'exécution de phing?
/main
/loader.php
/build.xml
/components
/package1
/class1.php
/package2
/class2.php
/tests
/package1
/class1.test.php
/package2
/class2.test.php
Quand je lance l'application web que je charge loader.php
au premier et inclure d'autres composants en appelant Loader::load('package_name')
. Ensuite, tous les fichiers nécessaires sont inclus. La bonne chose ici est que je n'ai pas besoin d'inclure loader.php
dans les fichiers de classe parce que je peux compter sur une instance de travail de Loader
.
Les classes de test d'unité simulent ce comportement en incluant explicitement toutes les classes nécessaires. Il n'y a donc aucun problème avec phing et PHPUnit.
Mais maintenant je veux générer un rapport de couverture avec phing et Xdebug. Le problème ici est que phing semble charger chaque fichier PHP pour créer la base de données de couverture. Malheureusement, il s'arrête parce qu'il ne peut pas trouver la classe Loader
qui est utilisée dans les fichiers PHP.
Je pourrais facilement ajouter une instruction include
à chaque fichier de classe, mais je me demande s'il est possible d'inclure des fichiers uniquement si l'analyse de la couverture de code inspecte le fichier?
Autre idée: Je pourrais aussi configurer l'analyse de la couverture d'une manière qui scanne les tests unitaires répertoire et trouve donc tout neccessary comprend. Ensuite, je devrais filtrer les classes qui correspondent à un modèle comme /Test$/i
ou plus. Possible?