Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Unit-Tests effektiv aus einem Standardverzeichnis „test' in Python ausführen?
Ausführen von Unit-Tests mit einer Standard-Testverzeichnisstruktur
Viele Python-Projekte übernehmen eine typische Verzeichnisstruktur, in der Unit-Tests in einem separaten Verzeichnis aufbewahrt werden. test“-Verzeichnis. Dies wirft die Frage auf: Wie führt man diese Tests effektiv durch?
Das Problem und das Problem
Das direkte Ausführen von test_antigravity.py aus dem Verzeichnis „test“ schlägt fehl, weil die Das Antigravitationsmodul befindet sich nicht im Systempfad. Das Ändern von PYTHONPATH und ähnlichen pfadbezogenen Tricks ist möglicherweise keine optimale Lösung. Das Kopieren und Einfügen der Testdatei in ein anderes Verzeichnis scheint ineffizient zu sein.
Die Lösung: Verwendung der Unittest-Befehlszeilenschnittstelle
Der am meisten empfohlene Ansatz ist die Verwendung des Unittest-Befehls Leitungsschnittstelle. Es fügt automatisch das aktuelle Verzeichnis zum sys.path hinzu und ermöglicht so einen nahtlosen Import des zu testenden Moduls.
Für eine Struktur wie:
new_project └── test_antigravity.py
Einfach ausführen:
$ python -m unittest test_antigravity
Für eine Struktur Wie:
new_project ├── antigravity │ └── antigravity.py └── test ├── test_antigravity.py
Sie können ein einzelnes Testmodul ausführen:
$ python -m unittest test.test_antigravity
Einen einzelnen Test ausführen:
$ python -m unittest test.test_antigravity.GravityTestCase
Eine einzelne Testmethode ausführen :
$ python -m unittest test.test_antigravity.GravityTestCase.test_method
Alle Tests durchführen:
$ python -m unittest discover $ # Also works without discover for Python 3 $ # as suggested by Burrito in the comments $ python -m unittest
Dieser Ansatz ist praktisch für Benutzer können Unit-Tests ausführen, indem sie einfach der Anweisung folgen: „Um die Unit-Tests auszuführen, führen Sie X aus.“
Das obige ist der detaillierte Inhalt vonWie kann ich Unit-Tests effektiv aus einem Standardverzeichnis „test' in Python ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!