Python-Unittest und -Entdeckung
Habe ich Verzeichnisse, die Dateien enthalten, die mit Namen wie:
test_foo.py
Jede Datei ist ein Testfall.
Möchte ich
1) Führen Sie alle tests in einem Verzeichnis von der Kommandozeile aus. Ich bin mit unittest2
da sind wir mit Python 2.5.1. Aus diesen Verzeichnissen habe ich versucht die Eingabe Folgendes in die Befehlszeile ein:
python -m unittest2 discover -p 'test_*.py'
und verschiedene Varianten. Ich bekomme keine Fehlermeldung, aber es passiert nichts. Ich hatte erwartet, alle tests, die innerhalb aller Testfälle, die in diesem Verzeichnis ausführen und die Ergebnisse erhalten.
2) ich habe auch versucht mit einem Skript in das Verzeichnis, wo ich dies getan habe:
loader = unittest2.TestLoader()
t = loader.discover('.')
Wenn ich drucken Sie die t
variable, die ich sehen kann, meine test-Fälle, aber von den docs habe ich nicht herausfinden können, was mit dem loader-Objekt, sobald ich es habe.
InformationsquelleAutor der Frage Aaron | 2010-07-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sobald Sie haben entdeckt, tests, können Sie diese mit einem test-runner.
Läuft der obige code wird zum Ausdruck der Testergebnisse zum standard.
InformationsquelleAutor der Antwort kortina
Ich lief in das gleiche Problem beim Betrieb
python -m unittest discover
. Hier ist eine gute check-Liste zur überprüfung Ihrer Einrichtung.Nose
ist flexibler mit der erlaubten Konfigurationen, aber nicht unbedingt besser.Stellen Sie sicher, dass alle Dateien/Verzeichnisse beginnen mit
test
. Tun nicht verwendentest-something.py
denn das ist nicht ein Gültiger python-Modul namens. Verwendentest_something.py
.Wenn Sie setzen Sie Ihre tests in ein sub-Verzeichnis (z.B.
test/
), stellen Sie sicher, Sie erstellen einetest/__init__.py
- Datei, damit python zu behandeln, wird das Verzeichnis als Paket.Alle Klasse Testfälle Definitionen werden müssen, verlängern
unittest.TestCase
. Zum BeispielInformationsquelleAutor der Antwort cmcginty
Geben, wie Sie versuchen, zu verwenden
unittest2
von der Kommandozeile Python< 2.7
ich denke, Sie verpasst haben der Hinweis auf dieunittest2
PyPI-Seite:Haben Sie versucht, die
unit2
Skript, welches dieser Hinweis empfiehlt als alternative für ältere Pythons in den "run-Paket als Haupt-Skript" - Funktion von Python 2.7? Vielleicht seine Quellen könnte auch nützlich sein, um herauszufinden, genau, wie zu entdecken-und-run-tests von Ihrem eigenen code, wenn es das ist, was Sie lieber tun.InformationsquelleAutor der Antwort Alex Martelli