Entweder lässt sich das Programm nicht mehr kompilieren, oder das Programmverhalten wird durch den neuen Code ungewollt verändert.
Um solche Fehler schneller zu finden, existieren seit geraumer Zeit sogenannte "Continuous Integration Systems", meistens Server basierte Systeme, die in regelmäßigen Zeitabständen den Code auschecken und ihn zumindest bauen, in erweiterten Systemen auch gleich die Tests ausführen und die Resultate an passenden Stellen veröffentlichen.
Die bekanntesten Vertreter dieser Systeme dürften "Anthill" und "CruiseControl" sein.
Neu in dieser Familie ist das Projekt "Continuum".
Die Installation dieses Servers ist denkbar einfach:
- Archivdatei downloaden
- Entpacken
- Gegebenenfalls die Ports des Servers anpassen (Diese liegen per Default auf 8080 und 8000)
- Server starten
- Administrator Kennung + Passwort vergeben.
Besonders bei Maven spielt Continuum seine Stärken aus:
- In der Maven Projekt Datei die SCM URL definieren.
- Die Projekt Datei (bei Maven2 die pom.xml) per Uploadfunktion dem Contiuum Server bekannt geben
- Und schon lädt der Server die aktuelle Version des Programms aus dem Repository.
Per Default lädt nun der Server alle 24 Stunden die neueste Version des Programms vom Server und führt vordefinierte Taks aus. Im Falle von Mavenprojketen ist dies "clean install".
Natürlich kann man diese Liste jederzeit um eigene Targets erweitern, z.B. "clean site site:depoly", und schon kann man jederzeit den aktuellen Stand der software einsehen.
Kombiniert man sein Projekt nun noch mit Tools wie Cobertura oder Clover, so erhält man genaue Statistiken über die Testabdeckung seines Projekts.
Fazit:
Wer an großen Projekten arbeitet, sollte sich überlegen, auf Continuous Intgration Systeme zurückzugreifen. Continuum stellt die einfachste Möglichkeit bereit, ein solches System schnell und einfach zum Einsatz zu bringen.
Links:
- Continuum: http://maven.apache.org/continuum/
- Anthill: http://www.urbancode.com/projects/anthill/
- CruiseControl: http://cruisecontrol.sourceforge.net/
- ANT: http://ant.apache.org/
- Maven1: http://maven.apache.org/maven-1.x/
- Maven2: http://maven.apache.org/
- Cobertura: http://cobertura.sourceforge.net/
- Clover: http://www.cenqua.com/clover/
No comments:
Post a Comment