Wieczos Blog

Ich laufe auf Sonnenschein!

Jasmine Tests vor jedem Git Commit ausführen

by Thomas Wieczorek - Dezember 23rd, 2011.
Filed under: JavaScript, Testen.

In meinem aktuellen Backbone.js Projekt verwende ich Jasmine für die Tests. Ich habe dazu das Jasmine Ruby Gem installiert.

Die Tests liefen erst als ich

require 'rubygems'

in die Rakefile eingefügt habe.

Bisher habe ich die Tests nur im Browser ausgeführt mit:

rake jasmine

Das ganze ist auch schön und gut, aber manchmal vergesse ich die Tests auszuführen und commit-te etwas, obwohl die Tests fehlschlagen.

Um die Tests laufen zu lassen, wenn ich commit-en will, habe ich einen pre-commit Hook geschrieben:

  • Erstelle die Datei .git/hooks/pre-commit
  • Folgendes in pre-commit kopiert:
rake jasmine:ci
exit $?
  • Den Hook ausführbar machen:
chmod +x .git/hooks/pre-commit
  • Tada! Bei jedem Aufruf von git commit -am ‚was geändert‘ werden zuerst die Tests ausgeführt, wenn sie fehlschlagen, wird auch nichts commit-tet.

Vor Commit

So sah es als ich git commit gestartet habe.

Konsole vor Commit

So sieht es aus, wenn die Tests fehlschlagen und der commit nicht durchgeführt wurde.

Das ganze dauert zwar ein bisschen, aber ich fühle mich sicherer, dass ich beim commit nichts zerstöre.

Leave a Reply