gcov liefert 0 Abdeckung, aber Unit-Tests laufen einwandfrei

Aisha Ashwal

Ich habe ungefähr 8 Unit-Tests für einen Code geschrieben, und für einige von ihnen stimmt die gcov-Abdeckung mit der Unit-Test-Abdeckung überein (was zeigt, dass alle Blöcke ausgeführt wurden usw.). Im Übrigen sieht gcov folgendermaßen aus:

function XXX called 0 returned 0% blocks executed 0%

aber mein Unit Test sieht so aus:

Lines executed:80.00% of 10
Branches executed:100.00% of 8
Taken at least once:75.00% of 8
No calls

Ich bin verwirrt, weil es zeigt, dass einige Zeilen in der Funktion ausgeführt werden, aber gcov sagt mir etwas anderes. Hat jemand eine Idee, was ich falsch mache? Vielen Dank!

Aisha Ashwal

Um das Problem etwas detaillierter zu beschreiben, falls jemand anderes auf dasselbe Problem stößt, führte ich Unit-Tests durch und wusste, dass die Unit-Tests in Ordnung waren, und alles schien in Ordnung zu sein, aber irgendwie bekam ich 0 Abdeckung .

Es stellt sich heraus, dass mein Makefile etwas Lustiges gemacht hat. Ich hatte diesen Block in meinem Makefile, der so aussah:

unittestresults.out: 
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o unittest1 -g unittest1.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o unittest2 -g unittest2.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o unittest3 -g unittest3.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o unittest4 -g unittest4.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o cardtest1 -g cardtest1.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o cardtest2 -g cardtest2.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o cardtest3 -g cardtest3.c dominion.o rngs.o
    gcc -fprofile-arcs -ftest-coverage -Wall -lm -std=c99 -o cardtest4 -g cardtest4.c dominion.o rngs.o
    ./unittest1 &> unittestresult.out
    ./unittest2 >> unittestresult.out
    ./unittest3 >> unittestresult.out
    ./unittest4 >> unittestresult.out
    ./cardtest1 >> unittestresult.out
    ./cardtest2 >> unittestresult.out
    ./cardtest3 >> unittestresult.out
    ./cardtest4 >> unittestresult.out
    gcov -b dominion.c >> unittestresult.out
    cat dominion.c.gcov >> unittestresult.out

Am Ende habe ich die erste Zeile in diese und jene geändert, die alles repariert haben. Mit den gleichen Unit-Tests erhalte ich jetzt Berichterstattung:

unittestresults.out: unittest1.c unittest2.c unittest3.c unittest4.c cardtest1.c cardtest2.c cardtest3.c cardtest4.c dominion.o rngs.o

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Tests unter JUnit 4 laufen, aber nicht JUnit 5 - Kompiliert sauber, aber 0 Tests ausführen

Resharper Unit Tests laufen nicht

Angular 2 Auth0 App funktioniert einwandfrei, aber Tests werfen den Fehler 'Auth0Lock is not defined' auf

.netcore Unit-Tests laufen nicht richtig

Karma-Abdeckung funktioniert nicht zu 100%, aber (0/0)

100% Code-Abdeckung; Unit-Tests für Datenklassenmodelle

OrderByKey funktioniert einwandfrei, aber OrderByChild liefert unerwartete Ergebnisse in der Firebase-Echtzeitdatenbank

Jest-Tests laufen über die CLI einwandfrei, schlagen jedoch in IntelliJ . fehl

Karma-Unit-Tests laufen immer wieder in einer Endlosschleife ab

Unit-Tests nicht bestehen, wenn die Abdeckung unter einem bestimmten Prozentsatz liegt

Wie kann eine Unit-Test-Abdeckung generiert werden, wenn Subprozess-Tests in Golang verwendet werden?

Bericht über die Abdeckung von Unit-Tests für Tests, die mit dem Paket unittest und pytest erstellt wurden

NullPointerException erhalten, wenn ich Tests über testng.xml ausführe, aber es funktioniert nacheinander einwandfrei

covr zeigt 0% der Abdeckung, während alle Tests mit Test bestanden wurden

ReSharper-Dotcover mit einer Abdeckung von 0% trotz Tests, die Code durchlaufen

gcov generiert eine leere Abdeckung für c

GHDL + Code-Abdeckung mit gcov (Ubuntu 16.04 LTS)

Alle Tests bestehen eine 100% ige Abdeckung, aber der Scherz gibt den Exit-Code 1 zurück

Powermock-gesteuerte Tests laufen gut über Maven, aber nicht in Intellij

Karma-Tests melden schnelle Läufe, laufen aber tatsächlich langsam

Die For-Schleife funktioniert einwandfrei, aber sobald ich eine Funktion daraus gemacht habe, liefert sie plötzlich nicht die richtigen Ergebnisse in R

MySQL SET PASSWORD funktioniert einwandfrei mit 0 betroffenen Zeilen, wird aber nicht wirksam?

Solr 7.3 indiziert einwandfrei - gibt aber bei der Suche 0 Ergebnisse zurück

SelectedRow count ist bei einer Methode immer gleich 0, funktioniert aber bei einer anderen einwandfrei

Wie ausschließen fehleranfällig von auf Unit-Tests laufen zu werden?

Wie Integrationstests und Unit-Tests laufen separat durch Maven machen?

Jacoco ist das Hinzufügen einer $ jacocoInit Methode in meiner Schnittstelle, wenn Unit-Tests laufen

Wie wird man von Warnungen Fremd Bibliothek befreien, während Unit-Tests laufen?

Ich versuche, Zypressen-Reaktions-Unit-Tests in einem ReactBoilerplate-Repository zum Laufen zu bringen

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv