2017-10-27 1 views
0

Ich versuche, ein Python-Repository für einige Code einzurichten. Ich habe das Structuring Your Project Tutorial gelesen und alles wie vorgeschlagen eingerichtet. Konkret habe ich die folgende Verzeichnisstruktur:Python-Repository-Organisation w.r.t. Tests und PyDev

repo_root/ 
    some_module.py 
    tests/ 
     context.py 
     test_some_module.py 

Die context.py Datei enthält genau das, was das Tutorial schlägt vor:

import os 
import sys 
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) 

import some_module 

Die test_some_module.py Datei Importe some_module wie so:

from context import some_module 

statt

from .context import some_module 

wie die Website vorschlägt.

Ich verwende PyDev und führe die Komponententests durch, indem ich mit der rechten Maustaste auf die Testdatei klicke und Run As/unittest auswähle. Dies führt dazu, dass der Test im Verzeichnis tests ausgeführt wird, in dem context sichtbar ist und der Import erfolgreich ist. PyDev zeigt Unresolved import. Ich vermute, das liegt daran, dass der Parser vom Projektstamm aus ausgeführt wird. Wenn ich tests zu der PYTHONPATH hinzufüge, funktioniert es immer noch nicht. Nur wenn ich eine __init__.py Datei in tests hinzufüge, hört PyDev auf, Fehler anzuzeigen, weil es tests als eine Bibliothek behandelt.

Was ist der richtige Weg, um mein Repository einzurichten? Sollen Tests nur im Verzeichnis tests aufgerufen werden oder sollen sie auch vom Repository-Root startfähig sein?

Antwort

1

PyDev funktioniert nicht wirklich gut, wenn Sie keine __init__ Dateien im Paket haben (auch wenn es für Tests ist), so, mein Vorschlag ist __init__ dort hinzuzufügen.