Ich verwende QT Creator, um an einem mittelgroßen Projekt in C++ zu arbeiten.Generieren der Testabdeckung der statischen C++ - Bibliothek, wie von separaten Testklassen aufgerufen
Die Projektstruktur sieht im Grunde wie diese
Projekt
- Gruppe A
- Bibliothek A1
- Gruppe B
- Bibliothek B1
- Bibliothek B2
- ... etc
-Test
- LibA1_Test
- LibB1_Test
- LibB2_Test
- ... etc
- Gruppe A
Die Bibliotheken werden von den ausführbaren Dateien im Testprojekt getestet. Ich habe es geschafft, die Tests selbst mit gcov zu kompilieren und mit lcov Code Coverage-Berichte zu erstellen, aber alles, wofür sie die Abdeckung zeigten, waren die Testfälle, nicht der eigentliche Code, den ich teste. Ich habe auch versucht, die statischen Bibliotheken mit gcov zu kompilieren, aber wenn ich die Tests gegen diese Bibliotheken durchführe, erzeugt es keine der gcov-Ausgabedateien.
Wie konnte ich die gcov-Ausgabedateien generieren, indem ich meine Projektbibliotheken mit den Tests verknüpfte? Ich möchte sehen, ob es Lücken in meinen Komponententests gibt.
Da ich speziell QT Creator wurde um mein Projekt aufzubauen, wollte ich nur hinzufügen, welche Schritte ich unternehmen musste. In meinen Testapplikationen habe ich hinzugefügt: 'QMAKE_CXXFLAGS + = -g -Wall -fprofile-arcs -test-coverage -OO' und' QMAKE_LFLAGS + = -g -Wall -Wl, - whole-archive -lLibA1 -Wl, - no-whole-archive -fprofile-arcs -ftest-coverage -00' zur .proj-Datei, sowie 'LIBS + = -lgcov'. Wenn Sie die Bibliotheken nicht angeben, die in den gesamten Archivierungsbefehl aufgenommen werden sollen, und dann daran denken, sie zu schließen, erhalten Sie viele Fehler. – alayers2