practices - python unittest setupclass




Komponententests in Python: Wie starte ich? (6)

Das kostenlose Python-Buch Dive Into Python enthält ein Kapitel zu Komponententests , das Sie möglicherweise nützlich finden.

Wenn Sie modernen Praktiken folgen, sollten Sie die Tests wahrscheinlich schreiben, während Sie Ihr Projekt schreiben, und nicht warten, bis Ihr Projekt fast fertig ist.

Bis jetzt ein bisschen spät, aber jetzt weißt du es fürs nächste Mal. :)

Ich habe mein erstes richtiges Projekt in Python abgeschlossen und nun ist es meine Aufgabe, Tests dafür zu schreiben.

Da ich zum ersten Mal ein Projekt mache, schreibe ich zum ersten Mal Tests dafür.

Die Frage ist, wie fange ich an? Ich habe absolut keine Ahnung. Kann mir jemand auf eine Dokumentation / Tutorial / Link / Buch verweisen, die ich verwenden kann, um mit dem Schreiben von Tests zu beginnen (und ich denke Unit-Tests insbesondere)

Jeder Rat wird zu diesem Thema begrüßt.


Die Dokumentation zum unittest wäre ein guter Anfang.

Es ist auch ein bisschen spät, aber in Zukunft sollten Sie vor oder während des Projekts selbst Komponententests schreiben. Auf diese Weise können Sie sie testen, während Sie fortfahren, und (theoretisch) können Sie sie als Regressionstests verwenden, um zu überprüfen, ob Ihre Codeänderungen vorhandenen Code nicht beschädigt haben. Dies würde Ihnen den vollen Vorteil geben, Testfälle zu schreiben :)


Wie schon andere geantwortet haben, ist es spät, Unit-Tests zu schreiben, aber nicht zu spät. Die Frage ist, ob Ihr Code testbar ist oder nicht. In der Tat ist es nicht einfach, bestehenden Code unter Test zu stellen, es gibt sogar ein Buch darüber: Effektiv mit Legacy-Code arbeiten (siehe wichtige Punkte oder Vorgänger-PDF ).

Jetzt schreiben Sie die Komponententests oder nicht ist Ihr Anruf. Sie müssen nur wissen, dass es eine langwierige Aufgabe sein könnte. Sie können dies angehen, um Komponententests zu erlernen, oder zuerst Akzeptanztests (End-to-End-Tests) schreiben und Komponententests schreiben, wenn Sie den Code ändern oder neue Funktionen zum Projekt hinzufügen.


nosetests ist eine brilliante Lösung für Unit-Testing in Python. Es unterstützt sowohl Unittest-basierte Testfälle als auch Doctests und macht Sie mit nur einer einfachen Konfigurationsdatei startklar.


Unittest kommt mit der Standard-Bibliothek, aber ich würde Ihnen empfehlen, die nosetests .

" Nase erweitert untestest, um das Testen zu erleichtern. "

Ich würde dir auch pylint empfehlen

" analysiert Python-Quellcode auf der Suche nach Fehlern und Zeichen schlechter Qualität. "


Wenn Sie mit Komponententests ganz neu sind, ist der einfachste Lernansatz oft der beste. Auf dieser Grundlage empfehle ich py.test anstelle des Standard- unittest Moduls.

Betrachten Sie diese zwei Beispiele, die dasselbe tun:

Beispiel 1:

import unittest

class LearningCase(unittest.TestCase):
    def test_starting_out(self):
        self.assertEqual(1, 1)

def main():
    unittest.main()

if __name__ == "__main__":
    main()

Beispiel 2:

def test_starting_out():
    assert 1 == 1

Angenommen, beide Dateien heißen test_unittesting.py . Wie werden die Tests ausgeführt?

Beispiel 1

$ cd /path/to/dir/
$ python test_unittesting.py

Beispiel 2:

$ cd /path/to/dir/
$ py.test




testing