Question Comment faire mes tests unitaires Python pour importer les modules testés s'ils sont dans des dossiers frères?


Je suis toujours en train de me tourner la tête import déclaration. Si j'ai 2 dossiers au même niveau:

  1. src
  2. tester

Comment faire le py fichiers dans test importer les modules dans src? Y a-t-il une meilleure solution (comme mettre un dossier dans un autre?)


14
2018-02-14 20:03


origine


Réponses:


Le code que vous voulez est pour utiliser src / nom_module.py

from src import module_name 

et le répertoire racine est sur votre PYTHONPATH par exemple vous exécutez à partir du répertoire racine

Votre structure de répertoire est ce que j'utilise, mais avec le nom du modèle à la place de src. J'ai cette structure de Le blog de J Calderone et similaire à Un blog google


9
2018-02-14 20:12



Essayez ceci:

import sys
import os
sys.path.append(os.path.join('..', 'src'))
import module_in_src_folder

édité pour supporter n'importe quelle plateforme


7
2018-02-14 21:29



J'ai exactement la même situation que l'OP avec tous les projets python que j'écris:

  • Dossier de projet
    1. src
    2. tester

Tous les modules, que ce soit en src ou en test, ou leurs sous-dossiers utilisent toujours la forme de import que Mark montre dans sa réponse:

from src import module_name

Ce que j'ai fait, c'est écrire un module qui se trouve dans Project Folder et découvre de manière récursive tous les modules de test dans le dossier de test et obtient le plus fort pour exécuter tous ces tests. Comme python est en cours d'exécution Project Folder, alors les modules sont relatifs au répertoire de travail.

Cela signifie que les tests sont comme tout autre client qui veut des modules de src.


0
2018-02-14 21:34