Salut tout le monde !
J'ai un projet qui contient 2 dossiers :
sources (qui contient mes fichiers sources)
test (qui contient les tests unitaires du code source)
J'aimerais que mon dossier test import des modules contenus dans sources pour les tester. Mon problème est que pour l'instant je n'ai réussi à faire marcher mes tests qu'en modifiant le sys.path dans tous les fichiers contenus dans le dossier test or je n'ai pas l'impression que ce soit une bonne méthode. Si je dois modifier l'arborescence, cette méthode entraîne beaucoup de duplication de code et n'est pas très adaptable.
J'ai l'impression que la bonne technique (n'hésitez pas à me dire si je me trompe) serait de modifier le sys.path d'un seul fichier dans le répertoire test qui pourrait ensuite transmettre l'info à tous les autres fichiers. Le problème c'est que cette méthode ne fonctionne qu'avec les fichiers qui se trouvent au même endroit. Dans le répertoire test les fichiers sont réparties en plusieurs dossiers qui contiennent eux-mêmes plusieurs sous-dossiers donc je ne pourrais pas indiquer le même chemin pour tous les fichiers, il faudra que je m'adapte.
J'ai essayé de faire un import relatif depuis les fichiers situés dans les sous-dossiers vers mon répertoire test mais je me retrouve avec cette erreur :
ImportError: attempted relative import with no known parent package
Quelqu'un aurait une idée pour avoir un répertoire test en dehors du répertoire du code source qui puisse importer le package sources depuis tous les fichiers de test ? J'imagine que je ne suis pas le seul à adopter une configuration avec un dossier test séparé des sources. Pourtant après plusieurs heures de recherche je n'ai pas trouvé la solution...
Merci d'avance !
Partager