74 votes

Python importe des modules src lors de l'exécution de tests

Mes fichiers sources se trouvent sous src et mes fichiers de test se trouvent sous tests. Lorsque je souhaite exécuter un fichier de test, disons python myTest.py, j'obtiens une erreur d'importation : "Aucun module nommé ASourceModule.py".

Comment importer tous les modules de la source nécessaires pour exécuter mes tests ?

44voto

Thomas Points 63635

Vous devez ajouter ce répertoire au chemin :

 import sys
sys.path.append('../src')

Peut-être mettez-le dans un module si vous l'utilisez beaucoup.

20voto

John Carpenter Points 2455

Sur mon système (Windows 10), j'ai dû faire quelque chose comme ceci :

 import sys
import os
sys.path.append(os.path.dirname(os.path.realpath(__file__)) + "/../src")

L'ajout du répertoire relatif directement à sys.path n'a pas fonctionné

15voto

Barry Wark Points 73462

La meilleure solution (la plus gérable) semble être d'utiliser un virtualenv et setuptools/distribute pour installer et ebelopment copie de votre package (src). De cette façon, vos tests s'exécutent sur un système entièrement « installé ».

Dans la doc pystest il y a une section sur les "bonnes pratiques" expliquant cette approche, voir ici .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X