Verknüpfen von Code-Coverage mit Versionskontrolle

8

Bevor ich eine Änderung begehe, möchte ich sichergehen, dass alles entweder automatisch oder manuell mit einem Code-Coverage-Bericht getestet wurde, aber es gibt eine Menge Legacy-Code, der keine automatisierten Tests enthält, und wird von meinen Änderungen nicht beeinflusst.

Gibt es ein Werkzeug, das einen Vergleich von einem Versionskontrollwerkzeug mit einem Code-Coverage-Bericht durchführen und sicherstellen kann, dass alles, was geändert wurde, ausgeführt wurde?

Ich erkenne, dass dies mit Code-Coverage ein falsches Gefühl der Sicherheit geben kann, und mit so etwas, noch mehr, aber ich denke, es wäre einen Versuch wert. Ich benutze git und PHP - Ich habe XCache's code coverager interface benutzt, um zu sehen, was ich ausgeführt habe, und es ist nützlich, aber es wäre toll, wenn etwas automatisch bei git commit oder push time laufen könnte.

    
rjmunro 04.02.2011, 15:44
quelle

2 Antworten

3

Für git Diffs gibt es ein Tool namens diff-cover , das überprüft werden kann Abdeckung. Es dauert Cobertura XML-Berichterstattung und vergleicht mit der Ausgabe von git diff . Es meldet dann Abdeckungsinformationen für Zeilen im Diff.

Wenn Sie die richtige XML-Überdeckungsdatei angegeben haben, können Sie mit diesem Befehl die Abdeckung Ihrer Änderungen im Vergleich zum Zweig master überprüfen:

%Vor%

Es ist auch ziemlich einfach, es mit einem CI-Server zu integrieren, solange es Ihnen das Commit zur Verfügung stellt, mit dem Sie vergleichen müssen, wie $GIT_PREVIOUS_COMMIT in Jenkins.

    
Dag Høidahl 17.04.2015, 15:21
quelle
3

Sie könnten einen fortlaufenden Integration Build-Server einrichten (es gibt viele ausgezeichnete, kostenlose Build-Server ). Einer der Build-Schritte würde Code Coverage ausführen. Sie könnten es so einrichten, dass Legacy-Code ignoriert wird und die Abdeckung nur für Nicht-Legacy-Code berechnet wird. Dann stellen Sie es so ein, dass der Build fehlschlägt, wenn Coverage & lt; xx%. Oder sogar fehlschlagen, wenn der Deckungsgrad% vom vorherigen Build abnimmt.

    
Mauricio Scheffer 05.02.2011 17:56
quelle