GCovr nicht generieren einer gültigen Bericht
Möchte ich meine Jenkins mit Cobertura zu verfolgen, die code-coverage.
Leider kann ich nicht generieren Gültiger xml.
Ich bin mit:
- gcovr 2.5-prerelease (r2774)
- Xcode 4.6.1 Build-version 4H512
Mein Projekt generiert code-coverage-Dateien korrekt, aber der Bericht erstellt mit gcovr ist nicht sinnvoll.
Den Befehl, den ich verwenden, um den Bericht zu generieren ist:
gcovr -r /Users/Shared/Jenkins/Home/jobs/CodeCoverage/workspace
--object-directory /Users/Shared/Jenkins/Home/Library/Developer/Xcode/DerivedData/myProject-aooceqwwovrizceerghqvhflcfty//Build/Intermediates/myProject.build/Development/myProject.build/Objects-normal/x86_64
--exclude '.*Developer.*'
--exclude '.*Tests.*'
--xml
Dadurch wird mir diese Ausgabe:
<?xml version="1.0" ?>
<!DOCTYPE coverage SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
<coverage branch-rate="0.0" line-rate="0.0" timestamp="1364322914" version="gcovr 2.5-prerelease (r2774)">
<sources>
<source>
/Users/Shared/Jenkins/Home/jobs/CodeCoverage/workspace/Project/myProject/
</source>
</sources>
<packages/>
</coverage>
Zusätzliche Informationen:
Wenn ich die abnehme, --object-directory-und -r und dann führe ich den Befehl aus den abgeleiteten Daten-Verzeichnis eine gültige Bericht generiert wird. Dieser Bericht kann gelesen werden, von cobertura, kann aber keine detaillierten Informationen über die Quelle-Dateien.
- Ich verließ für die Verwendung gcovr. Ich bin mit einer Reihe von shell-scripts zum generieren der XML. Zuerst habe ich ausgeführt, gcov, dann kann ich ausschließen, einige Linien zwischen Sonder-Kommentare (ich bin mit CoverStory) und dann Generiere ich ein XML aus der ersten Spalte der gcov-Ausgang. Es ist eigentlich sehr einfach, können Sie auch auf die Quelldateien in Ihren Arbeitsbereich direkt an, so können Sie ganz einfach die Reichweite von Dateien auf jenkins.
- Wäre es möglich, dass Sie Ihre Drehbücher? Ich kann nicht gcovr arbeiten mit Dateien von Xcode 5 und ich bin auf der Suche nach einer anderen Lösung. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim arbeiten mit XCode, habe ich festgestellt, dass mit
$WORKSPACE/build
wie das build-Verzeichnis hilft bei diesem problem. Dies hält die Abgeleiteten Daten-Verzeichnis aus, und auch ordentlich hält meine Objekt-Dateien im build-Verzeichnis. Es verhindert auch, dass zwei builds aus, die einander stören.Wenn Sie die Xcode-build-tool, set
SYMROOT
zu$WORKSPACE/build
in das Tool build-Konfiguration. Wenn Sie erstellen von der Befehlszeile aus, stellen Sie es manuell auf der Kommandozeile oder in der Umgebung.Dann ein gcovr Skript wie:
(der Pfad kann variieren leicht je nachdem, was Sie nennen Ihren Stil bauen, etc.)
Und schließlich in die Cobertura config, zeigen Sie auf
build/coverage.xml
, und Sie sollten Anmerkungen Quelle, wenn Sie das tool verwenden, innerhalb von Jenkins.Sollte den trick tun. Ich habe wirklich sehr glücklich mit dieser Konfiguration auf unserer kleinen farm von Mac Minis.
xcodebuild
Befehl auf die Frage? Es gibt eine Reihe von "downstream" - Einstellungen, die normalerweise die .o-Dateien im Pfad beschrieben in SYMROOT, aber viele können verändert werden und das Projekt.Den
gcovr
python-script scheint nicht unterstützt out-of-source-tree aufbaut.Hob ich einen bug-report dazu gibt es hier https://github.com/gcovr/gcovr/issues/61
gcovr ausgeführt werden soll, aus dem Ordner, wo die .gcda und .gcno-Dateien vorhanden sind. Und den root-Pfad ist der Ordner wo die source-Dateien(.c oder .cpp) bestehen.
Mit dabei, der Befehl sieht wie etwas, das, wie unten gezeigt.
rr-mac:gcdaFolder$ gcovr -r /path_to_C_sourceFiles/.
Für die Ausgabe-html-Datei unter Befehl funktioniert
rr-mac:gcdaFolder$ gcovr --html -o Filename_rp.html -r /path_to_C_sourceFiles/.
Hinweis: Der Punkt(.) am Ende ist verpflichtend