Unittest mit typischer Testverzeichnisstruktur

Die übliche Verzeichnisstruktur selbst für ein einfaches Python-Modul scheint darin zu bestehen, die Komponententests in ihre eigenen zu unterteilentest Verzeichnis:

new_project/
    antigravity/
        antigravity.py
    test/
        test_antigravity.py
    setup.py
    etc.

Zum Beispiel sehen Sie diesPython-Projekt-Howto.

Meine Frage ist einfachWie werden die Tests normalerweise ausgeführt? Ich vermute, das ist für alle außer mir offensichtlich, aber du kannst nicht einfach davonlaufenpython test_antigravity.py aus dem Testverzeichnis alsimport antigravity schlägt fehl, da sich das Modul nicht im Pfad befindet.

Ich weiß, dass ich PYTHONPATH und andere Tricks im Zusammenhang mit Suchpfaden modifizieren könnte, aber ich kann nicht glauben, dass dies der einfachste Weg ist - es ist in Ordnung, wenn Sie der Entwickler sind, aber nicht realistisch, zu erwarten, dass Ihre Benutzer ihn verwenden, wenn sie nur die Tests überprüfen möchten Vorbeigehen.

Die andere Alternative besteht darin, die Testdatei nur in das andere Verzeichnis zu kopieren, aber es scheint ein bisschen dumm zu sein und vermisst den Sinn, sie zunächst in einem separaten Verzeichnis zu haben.

Wenn Sie die Quelle gerade in mein neues Projekt heruntergeladen hätten, wie würden Sie dann die Komponententests durchführen? Ich bevorzuge eine Antwort, mit der ich meinen Benutzern sagen kann: "Um die Komponententests auszuführen, führen Sie X aus."

Antworten auf die Frage(19)

Ihre Antwort auf die Frage