Frage

Ich habe die gleichen Quelldateien (C und Obj-C) in zwei Ziele zusammengestellt werden: die Unit-Test ausführbar und das eigentliche Produkt (die dann Integration getestet wird). Die beiden Ziele bauen in verschiedenen Orten, so dass die Objektdateien, getrennt .gcno und .gcda Dateien sind. Nicht alle Quelldateien werden in den Unit-Test zusammengestellt, so dass nicht alle Objekte existieren werden. Alle Quelldateien werden in das Produkt Build zusammengestellt.

Gibt es eine Möglichkeit, die zwei Sätze von .gcda Dateien zu kombinieren, um die vollständige Abdeckung für Unit-Tests und Integrationstests zu erhalten (wie sie auf dem Produkt Build ausgeführt werden)?

Ich bin mit lcov.

Mac OS X 10.6, GCC 4.0

Danke!

War es hilfreich?

Lösung

Da Sie lcov verwenden, sollten Sie in der Lage sein, die gcov .gcda Dateien in lcov-Dateien zu konvertieren und kombiniert sie mit lcov --add-tracefile.

Von manpage: Den Inhalt Trace-Datei. mehrere Tracefiles Geben Sie den -a Schalter unter Verwendung der Abdeckungsdaten in diesen Dateien durch Addition Ausführung zählt für Übereinstimmungstest und den Dateinamen Kombinationen enthalten sind, zu verbinden.

Andere Tipps

Schließlich gelang es mir, mein Problem mittels lcov zu lösen.

Im Grunde, was ich getan habe ist folgende:

  • Compile die Anwendung mit den Flaggen -fprofile-arcs -ftest-coverage --coverage
  • Verteilen Sie die Kopie der Anwendung auf jedem Knoten.
  • Ausführen der Anwendung in jedem Knoten in parallel. (Dieser Schritt erzeugt in das Anwendungsverzeichnis in der Zugriffs Host die Abdeckungsinformationen)
  • Let lcov seine Arbeit machen:
    • lcov --directory src/ --capture --output-file coverage_reports/app.info
  • Generieren Sie die HTML-Ausgabe:
    • genhtml -o coverage_reports/ coverage_reports/app.info

Ich hoffe, diese Hilfe zu jemandem sein kann.

ich fusionieren es durch lcov Multi -d Parameter wie unten. Es funktioniert.

lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top