2009-07-09 5 views
1

Ich möchte, dass CruiseControl.Net bei einem Build fehlschlägt, wenn sich einige Code-Metriken in eine "falsche" Richtung ändern, d. H. Die Code-Abdeckung nimmt ab oder die Anzahl der Gendarm-Defekte steigt. Die Gendarm-Messwerte werden bereits in der Datei report.xml erfasst (da sie in Web-Dashboard-Diagrammen angezeigt werden). Die Codeabdeckung wird nur auf der Build-Statusseite gemeldet (und in Build-Berichts-XML gespeichert).Wie kann CruiseControl.Net einen Build aufgrund veränderter Metriken nicht bestehen?

Wie kann ich das erreichen?

Antwort

0

Das Grundprinzip besteht darin, den Metrik-Score und das Datum irgendwo zu speichern (z. B. eine Datenbank) und die Metrik jedes Mal gegen den zuletzt gespeicherten Wert zu überprüfen.

Ihr Hauptproblem wäre das Sammeln der Statistiken auf dem neuen Build vor Erfolg/Fehler Punkt - die Verleger ausgeführt, nachdem der Build bereits erfolgreich war/fehlgeschlagen, so dass Sie eine sequenzielle Aufgabe verwenden müssen, um die Statistiken zu sammeln.

Kommen Sie, daran zu denken, ich bin nicht wirklich sicher, dass es eine gute Idee ist nicht tatsächlich ein Build auf Metriken, könnte man diese finden Sie kommen zurück zu beißen.

0

Was auch immer Sie tun, sollte ein Teil Ihres Buildskripts sein, nicht die CC.Net-Projektintegration. Warum? Da Entwickler diese Build-Fehler vor andernfalls nicht erkennen können, übergeben sie den Code an das Repository. Sie sollten danach streben, das gleiche Build-Skript sowohl auf dem Build-Server als auch auf den Maschinen der Entwickler ausführen zu lassen. Es macht keinen Sinn, einen Build-Server zu haben, bei dem die Hälfte Ihrer Builds als ausgefallen markiert ist.

Sie müssten also die Geschichte dieser Statistiken selbst behalten und dann die letzten Statistiken mit den historischen Werten vergleichen, indem Sie Ihr Build-Skript verwenden.