Ich habe die gleichen Quelldateien (C und Obj-C), die in zwei Ziele kompiliert werden: den Komponententest, der ausführbar ist, und das eigentliche Produkt (das dann die Integration testet). Die beiden Ziele werden an unterschiedlichen Stellen erstellt, sodass die Objektdateien, .gcno- und .gcda-Dateien getrennt sind. Nicht alle Quelldateien werden in den Komponententest kompiliert, so dass nicht alle Objekte dort existieren. Alle Quelldateien werden in den Produktbuild kompiliert.
Gibt es eine Möglichkeit, die beiden Gruppen von .gcda-Dateien zu kombinieren, um die Gesamtabdeckung für Komponententests und Integrationstests (wie sie auf dem Produktbuild ausgeführt werden) zu erhalten?
Ich benutze lcov.
Mac OS X 10.6, GCC 4.0
Danke!
Da Sie lcov verwenden, sollten Sie in der Lage sein, die gcov .gcda-Dateien in lcov-Dateien zu konvertieren und sie mit lcov --add-tracefile
zusammenzuführen.
Von der Manpage: Fügen Sie den Inhalt von tracefile hinzu. Geben Sie mehrere Trace-Dateien mit der Option -a an, um die in diesen Dateien enthaltenen Coverage-Daten zu kombinieren, indem Sie die Anzahl der Tests für die Übereinstimmung von Test- und Dateinamen-Kombinationen addieren.
Endlich habe ich mein Problem mit Hilfe von lcov gelöst.
Grundsätzlich habe ich Folgendes getan:
-fprofile-arcs -ftest-coverage --coverage
lcov --directory src/ --capture --output-file coverage_reports/app.info
genhtml -o coverage_reports/ coverage_reports/app.info
Ich hoffe, dass dies jemandem helfen kann.
Ich füge es durch lcov multi-d Parameter wie folgt zusammen. Es funktioniert.
%Vor%Tags und Links gcc code-coverage gcov lcov