Ich möchte Abdeckungsinformationen von meinen googletest-Tests erhalten, aber ich habe Probleme, gute Anweisungen zu finden.
Ich nehme an, ich soll meine gtest-Binärdatei so kompilieren, dass sie .gcno
und .gcna
-Dateien ausspuckt. Es scheint jedoch keine Kombination von Compiler-Flags zu passieren.
Ich habe versucht, --coverage
und -fprofile-arcs -ftest-coverage
zu verwenden, sowohl beim Kompilieren als auch beim Verknüpfen, aber ohne Erfolg.
Bin ich nur in der ganzen Vorgehensweise falsch? Werden googletest-Tests jemals so kompiliert?
Zur Vollständigkeit hier ist das ganze Makefile:
%Vor%Sie müssen --coverage sowohl beim Kompilieren als auch beim Verknüpfen hinzufügen, wie Sie es bereits richtig machen. Dies erzeugt einen Bytecode, der bei einem Besuch Abdeckungsinformationen ausgibt. Um alle Dateien zu generieren, die gcov untersuchen soll, müssen Sie lediglich das Programm (oder das von googletest generierte Testprogramm) ausführen. Nach einmaliger Ausführung (und nur einmal, weil Sie es zu den beobachteten Daten hinzufügen, wenn Sie es mehrmals ausführen), sehen Sie die generierten Dateien und Sie können jetzt in gcov aufrufen.
Es scheint, dass Sie von Ihrem (korrekten) Makefile nur den Schritt "Ausführen des Testprogramms" verpassen.
Tags und Links c++ gcc gcov googletest