Heim >Technologie-Peripheriegeräte >IT Industrie >Automatisieren Sie das Debuggen in Git mit Unit -Tests
Vor einiger Zeit habe ich einen Artikel über das Debuggen einer Codebasis in Git unter Verwendung von zwei Befehlen Schuld und Halbier veröffentlicht. Git beschuldigte die Überprüfung des Autors jeder Zeile einer Datei, während BISECT das Durchlaufen der Commits (Verwendung von Binärsuche) beinhaltet, um den einen zu finden, der den Fehler eingeführt hat. In diesem Beitrag werden wir sehen, wie der halbierende Prozess automatisiert wird.
Um Ihr Gedächtnis zu aktualisieren, umfasste Git -Halbzeit einige Schritte, die unten zusammengefasst sind:
Um eine Vorstellung vom gesamten Prozess zu bekommen, können Sie sich diesen Screencast ansehen, der ausführlich zeigt, wie der Debugging -Prozess funktioniert.
Natürlich war der dritte Schritt zeitaufwändig - Git würde zeigen, dass Sie nacheinander voneinander beginnen, und Sie mussten sie als „gut“ oder „schlecht“ bezeichnen, nachdem Sie überprüft hatten, ob der Fehler in diesem Commit vorhanden war.
Wenn wir ein Skript schreiben, um den Debugging -Prozess zu automatisieren, werden wir im Grunde den dritten Schritt ausführen. Fangen wir an!
In diesem Beitrag werde ich ein kleines Modul in Python schreiben, das eine Funktion enthält, die zwei Zahlen hinzufügt. Dies ist eine sehr einfache Aufgabe und ich werde dies nur für Demonstrationszwecke tun. Der Code ist selbsterklärend, daher werde ich nicht in Details eingehen.
<span>#add_two_numbers.py </span>def add_two_numbers<span>(a, b): </span> <span>''' </span> Function to <span>add two numbers </span> <span>''' </span> addition <span>= a + b </span> <span>return addition</span>
Um den Prozess der Git -Halbzeit zu automatisieren, müssen Sie Tests für Ihren Code schreiben. In Python werden wir das unittestes Modul verwenden, um unsere Testfälle zu schreiben. So sieht ein grundlegender Test aus.
<span>#add_two_numbers.py </span>def add_two_numbers<span>(a, b): </span> <span>''' </span> Function to <span>add two numbers </span> <span>''' </span> addition <span>= a + b </span> <span>return addition</span>
Wir konnten mehr dieser Tests schreiben, aber dies war nur, um zu demonstrieren, wie man damit weitergeht. Tatsächlich sollten Sie auf jeden Fall mehr Testfälle schreiben, da Ihre Programme und Apps weitaus komplexer werden.
Um die Unit -Tests auszuführen, führen Sie die Tests.Py -Datei mit Ihren Testfällen aus.
.<span>#tests.py </span><span>import unittest </span>from add_two_numbers <span>import add_two_numbers </span> class TestsForAddFunction<span>(unittest.TestCase): </span> def test_zeros<span>(self): </span> result <span>= add_two_numbers(0, 0) </span> self.assertEqual<span>(0, result) </span> <span>if __name__ == '__main__': </span> unittest.main<span>()</span>
Wenn die Tests bestehen, sollten Sie die folgende Ausgabe erhalten.
Lassen Sie uns nun einen Fehler in unserer Funktion einführen und den Code festlegen.
python tests.py
Um zu überprüfen, ob die Tests fehlschlagen, lassen Sie uns sie erneut ausführen.
Lassen Sie uns ein paar weitere Commits hinzufügen, damit das Commit, der den Fehler eingeführt hat, nicht der letzte ist.
Für den Git -BISECT -Assistenten werden wir das neueste Komitee als schlecht auswählen (B60FE2CF35) und den ersten als gut (98D9DF03B6).
def add_two_numbers<span>(a, b): </span> <span>''' </span> Function to <span>add two numbers </span> <span>''' </span> addition <span>= a + 0 </span> <span>return addition</span>
Zu diesem Zeitpunkt verweist Git uns zu einem Commit und fragt uns, ob es sich um ein gutes oder ein schlechtes Commit handelt. Dies ist der Zeitpunkt, an dem wir Git sagen sollen, die Tests für uns durchzuführen. Der Befehl dafür ist wie folgt.
<span>git bisect start b60fe2cf35 98d9df03b6</span>
In unserem Fall wird es sich herausstellen.
<span>git bisect run [command to run tests]</span>
Wenn wir Git den Befehl zur Ausführung der Tests selbst zur Verfügung stellen, anstatt uns zu fragen, führt Git diese Tests für jede Revision aus und entscheidet, ob das Commit gut oder schlecht zugewiesen werden sollte.
Sobald Git durchgeführt wird, um Tests für jedes Commit auszuführen, wurde herausgefunden, welches Commit den Fehler wie Magic!
Wenn Sie Ihr Commit gefunden haben, vergessen Sie nicht, den Assistenten mit Git -Halbektion zurückzusetzen.
Anstelle Ihrer Unit -Tests können Sie auch ein benutzerdefiniertes Shell -Skript mit benutzerdefinierten Exit -Codes erstellen. Im Allgemeinen wird ein Exit -Code von 0 als Erfolg angesehen, alles andere ist ein Fehler.
Wenn die Größe Ihrer Codebasis zunimmt, wird das Schreiben von Unit -Tests für jeden kleinen Code, den Sie schreiben, notwendig. Das Schreiben von Tests mag zeitaufwändig erscheinen, aber wie Sie in diesem Fall gesehen haben, helfen sie Ihnen beim Debuggen und sparen Sie auf lange Sicht Zeit.
Wie debug Ihre Teamfehler im Code? Lassen Sie uns in den Kommentaren unten wissen.
Wie kann ich effektive Unit -Tests für mein Git -Repository schreiben? . Zunächst sollte sich jeder Test auf eine einzelne Funktionalität oder ein einzelnes Verhalten konzentrieren. Dies erleichtert die Ermittlung der Ursache von Fehlern. Zweitens sollten Tests unabhängig sein und in jeder Reihenfolge laufen können. Dies stellt sicher, dass das Ergebnis eines Tests das Ergebnis eines anderen nicht beeinflusst. Drittens sollten die Tests wiederholbar sein und jedes Mal, wenn sie ausgeführt werden, dieselben Ergebnisse liefern. Dies stellt sicher, dass Ihre Tests zuverlässig sind und vertrauenswürdig sind, um Fehler zu fangen. mit Git -Unit -Tests. Dazu gehören Tools (Continuous Integration) wie Jenkins, Travis CI und Circleci. Diese Tools können so konfiguriert werden, dass Sie Ihre Unit -Tests jedes Mal ausführen, wenn Sie Änderungen in Ihr Git -Repository weitergeben. Darüber hinaus können Sie Test -Frameworks wie JUNIT (für Java), PyTest (für Python) und Mocha (für JavaScript) verwenden, um Ihre Unit -Tests zu schreiben.
Wie kann ich sicherstellen, dass meine Git -Unit -Tests effektiv sind?
Sicherstellen, dass Ihre Git -Unit -Tests wirksam sind, beinhaltet mehrere Best Practices. Erstens sollten Ihre Tests alle Teile Ihres Codes, einschließlich Kantenfälle, abdecken. Dies stellt sicher, dass Ihre Tests umfassend sind. Zweitens sollten Ihre Tests unabhängig sein und in jeder Reihenfolge ausgeführt werden. Dies stellt sicher, dass das Ergebnis eines Tests das Ergebnis eines anderen nicht beeinflusst. Drittens sollten Ihre Tests wiederholbar sein und jedes Mal die gleichen Ergebnisse liefern, wenn sie ausgeführt werden. Dies stellt sicher, dass Ihre Tests zuverlässig sind. Code, nicht die Benutzeroberfläche (Benutzeroberfläche) Ihrer Anwendung. Sie können jedoch andere Arten von Tests wie Integrationstests oder End-to-End-Tests verwenden, um Ihre Benutzeroberfläche zu testen. Diese Tests können auch automatisiert und mit einem Continuous Integration (CI) Tool ausgeführt werden. Dies kann dazu beitragen, zu Beginn des Entwicklungsprozesses Fehler in Ihrer Benutzeroberfläche zu fangen.Das obige ist der detaillierte Inhalt vonAutomatisieren Sie das Debuggen in Git mit Unit -Tests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!