2013-05-31 5 views
12

Ich habe Cobertura erfolgreich eingerichtet, um durch Jenkins zu laufen und Berichterstattung Berichte zu generieren, jetzt bin ich bei der Konfiguration von Verstößen fest, um Ergebnisse für pep8 Tests zu melden.Generieren von PEP8 XML-Bericht für Jenkins/Verletzungen verwenden

Im Moment habe ich es so, dass ich PEP8 mit einem Batch-Befehl ausführen und es eine TXT-Datei generiert, die alle Verletzungen speichert, die im Arbeitsbereich endet.

Muss ich Stapelbefehle definieren, um eine XML-Datei für diese Verstöße zu erstellen, die an die Aktion "Post-Build-Aktion für Berichtsverletzungen" gesendet werden soll? Wenn ja, wie würde ich diesen Befehl definieren?

+0

AFAIK Hinzufügen der pep8 Ausgabedateiname (innerhalb des Arbeitsbereichs) in der Zeile für Pep8 in Berichtsverletzungen ist der einzige Schritt, den Sie tun müssen, damit die Ergebnisse in jenkins angezeigt werden ... –

Antwort

24

Wie Vajk hervorhebt, benötigen Sie keine XML-Datei. Sie können die Ausgabe des Hilfsprogramms pep8 einfach in eine Datei pipen und diese als die Übertretungsdatei in Jenkins verwenden.

Zum Beispiel in Ihre Jenkins bauen Konfiguration unter:

Build -> Execute Shell -> Command 

können Sie schreiben:

pep8 path/to/code > pep8_report.txt 

Und dann unter:

Post-build Actions -> Report Violations -> pep8/XML filename pattern 

add:

pep8_report.txt 

Beachten Sie, dass obwohl die Benutzeroberfläche nach einer XML-Datei fragt und die Datei keine XML-Datei ist, hat dies für Jenkins Version 1.499 gut funktioniert.

+0

Sie können auch [flake8] verwenden (https://flake8.readthedocs.org/en/2.3.0/index.html) Ausgabe als pep8 Verletzungen. – razz0

+1

Ich habe versucht, wie oben beschrieben und es funktioniert auch für mich, aber das Problem ist, dass Links in den Verletzungen nicht funktionieren. – parthiban

+0

Ich kann die 'Verstoß melden' in 'Post-Build-Aktion' nicht sehen. Fehle ich ein Plugin? (Ich habe Cobertura bereits installiert). – Will

0

Ich sehe das eine sehr alte Frage, aber ich hatte eine Menge Schwierigkeiten, um eine Antwort zu finden, also hoffentlich wird das anderen helfen.

Nach viel Forschung fand ich, dass Jenkins Verstöße Plugin nicht ./ Bit vor jeder Zeile nicht mag, so Parsen nur die Ausgabe von PEP8 (es gilt auch für flake8) den Trick:

pep8 . | 's|^./||' | tee pep.txt

Das wichtige Bit wird sed, welche das Auftreten von ./ am Anfang der Zeichenfolge (^) auf ‚‘ verändert, sie effektiv zu entfernen

der T-Stück-Bit einige Abhilfen zu vermeiden Jenkins zu stoppen, wenn Die Ausgabe des pep8-Befehls ist nicht Null.

Verwandte Themen