Heim >Backend-Entwicklung >C++ >C Testabdeckung in C ist und lehrt Sie, wie man benutzt
Software -Testberichterstattung ist für die Softwareentwicklung sehr wichtig. Der Test stellt sicher, dass die Software wie erwartet ausgeführt wird und die Testabdeckung sicherstellt, dass Sie alle Möglichkeiten des Codes überprüfen. Viele moderne Sprachen haben Bibliotheken oder Tools, die die Berichterstattung über die Berichterstattung erzeugen, aber wissen Sie, dass es ein "natives" Tool für C -Sprache gibt?
Beginnen wir mit einem einfachen Code, der ± 42 Code zurückgibt:
<code class="language-c">#include <stdbool.h> int return_42(bool ret_neg) { if (ret_neg) return -42; return 42; }</code>
jetzt ist eine einfache Testdatei:
<code class="language-c">#include <assert.h> #include <stdbool.h> #include <stdio.h> int return_42(bool ret_neg); int main() { assert(return_42(false) == 42); assert(return_42(true) == -42); puts("Nice"); return 0; }</code>
Jetzt können wir den GCC/CC -Compiler und -fprofile-arcs
und -ftest-coverage
verwenden, um Code zu kompilieren.
generiert eine Datei mit ausführbaren Dateien und erweiterten Namen .gcno
.
Nach dem Erstellen dieser Dateien führen wir den Test aus und erstellen eine Datei mit Erweiterung .gcda
nach dem Vorgang.
Mit diesen neu erstellten Dateien können wir mit GCOV -Tools sie verarbeiten (bitte zuerst GCOV installieren), dann GCOV ausführen und .gcda
und .gcno
Dateinamen übergeben (normalerweise haben sie denselben Namen wie .c
Dateien, den gleichen Namen, die Dateien im gleichen Namen, denselben Namen, die Dateien im gleichen Namen, die Datei, denselben Namen, die Datei, die Datei im selben Namen, die Datei, die Datei, die Datei, Die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei, die Datei sind gleich Name, die Datei, aber sie kann anders sein). Dadurch wird eine Datei mit einer Erweiterung .gcov
generiert. GCOV bietet eine kleine Zusammenfassung der Abdeckung, aber für mehr als einen einfachen Test (z. B. habe ich mehr als 120 Tests in einer Bibliothek), müssen wir die Ergebnisse intuitiver anzeigen.
Als nächstes verwenden wir LCOV (bitte zuerst LCOV installieren) und -c
, -d .
und -o foobar.info
zum Ausführen von LCOV. Es generiert eine Datei namens und druckt die Abdeckung der Abdeckung aus. Leider zeigt diese Zusammenfassung nicht an, welche Funktionen überprüft wurden, aber mit der erstellten foobar.info
-Datei können wir .info
LCOV ausführen, mit denen eine lesbarere Formzusammenfassung druckt. Wir erhalten jedoch immer noch nur einen Prozentsatz, und wir können nicht sehen, welche Zeilen überprüft wurden. Geben Sie also den letzten Schritt ein und erleichtern die Visualisierung der Ergebnisse. -l foobar.info
und foobar.info
zu bestehen. GenHTML generiert einen Ordner, der mehr lesbare Berichterstattung enthält (Sie können diese HTML -Datei nach Belieben öffnen. Meine persönliche bevorzugte Möglichkeit zum Öffnen ist die Verwendung von -o bar_html
). python -m http.server -d bar_html
Sie können auch Clang verwenden, aber die Marke ändert sich. Da ich Clang nicht mag und das Endergebnis nicht schön ist, habe ich nicht in der Tiefe gelernt, aber soweit ich es ausprobiert habe, könnten alle Funktionen mit LLVM ausgeführt werden. LLVM -Werkzeuge.
Schließlich hat Genhtml viele maßgeschneiderte Markierungen.
Okay, hier ist heute hier, bis zum nächsten Mal!
Das obige ist der detaillierte Inhalt vonC Testabdeckung in C ist und lehrt Sie, wie man benutzt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!