Ausführen von Unit-Tests mit einer typischen Verzeichnisstruktur
Die allgemeine Modulstruktur von Python beinhaltet häufig die Aufteilung von Unit-Tests in ein dediziertes Testverzeichnis, wie unten dargestellt :
new_project/ antigravity/ antigravity.py test/ test_antigravity.py setup.py etc.
Das Ausführen dieser Tests erfordert mehr als nur die einfache Ausführung von python test_antigravity.py Das Testverzeichnis. Da sich die Antigravitation nicht im Importpfad befindet, schlägt dieser Ansatz fehl.
Stattdessen ist die einfachste Möglichkeit, die Tests auszuführen, die Verwendung der Unittest-Befehlszeilenschnittstelle. Dieses Dienstprogramm fügt das Verzeichnis automatisch zu sys.path hinzu und macht Module für den Import zugänglich.
Für eine Verzeichnisstruktur wie:
new_project ├── antigravity.py └── test_antigravity.py
Führen Sie die Tests wie folgt aus:
$ cd new_project $ python -m unittest test_antigravity
Für eine Struktur wie Ihre, mit Paketen sowohl im Antigravity- als auch im Testverzeichnis, können Sie Module wie gewohnt in Test in Antigravity importieren Module:
# import the package import antigravity # import the antigravity module from antigravity import antigravity # or an object inside the antigravity module from antigravity.antigravity import my_object
Spezifische Tests ausführen:
So führen Sie ein bestimmtes Testmodul aus (z. B. test_antigravity.py):
$ cd new_project $ python -m unittest test.test_antigravity
Sie können auch einen einzelnen Testfall oder eine einzelne Testmethode ausführen:
$ python -m unittest test.test_antigravity.GravityTestCase $ python -m unittest test.test_antigravity.GravityTestCase.test_method
Alle ausführen Tests:
Verwenden Sie die Testerkennung, um alle Tests automatisch zu erkennen und auszuführen:
$ cd new_project $ python -m unittest discover
Dadurch werden alle test*.py-Module im Testpaket ausgeführt. Weitere Informationen finden Sie in der offiziellen Dokumentation zur Entdeckung.
Das obige ist der detaillierte Inhalt vonWie führt man Unit-Tests in Python mit einer Standardverzeichnisstruktur effektiv aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!