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?