Heim >Backend-Entwicklung >Golang >Wie schließe ich generierte Dateien von der Go-Test-Abdeckung aus?

Wie schließe ich generierte Dateien von der Go-Test-Abdeckung aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-12 12:11:11833Durchsuche

How to Exclude Generated Files from Go Test Coverage?

Generierte Dateien von der Go-Testabdeckung ausschließen

Beim Ausführen von Tests für ein Go-Paket mit go test -coverprofile=cover.out

Generierten Code aus Abdeckungsprofilen entfernen

  1. Führen Sie die Tests aus und generieren Sie mit go test ein temporäres Abdeckungsprofil . -coverprofile cover.out.tmp.
  2. Parsen Sie das temporäre Profil mit grep, um Zeilen herauszufiltern, die „_generated.go“ enthalten, was generierte Dateien darstellt.
  3. Erstellen Sie das endgültige Abdeckungsprofil cover.out durch Umleiten der gefilterten Ausgabe. Verwenden Sie den Befehl cat cover.out.tmp | grep -v "_generated.go" > cover.out.

  4. Generieren Sie den Abdeckungsbericht mit dem Tool cover -func cover.out.
  5. Pipeline-Integration

    Abhängig von den Tools Wenn dieser Prozess verwendet wird, kann er problemlos in Ihre Build-/Testpipeline integriert werden. Wenn Sie beispielsweise Make verwenden, könnten Sie die folgenden Schritte einschließen:

    test:
        go test -coverprofile cover.out.tmp .
        cat cover.out.tmp | grep -v "_generated.go" > cover.out
        tool cover -func cover.out

    Indem Sie generierte Dateien von der Abdeckungsberechnung ausschließen, können Sie genauere Abdeckungsmetriken erhalten, die sich auf Ihren manuell geschriebenen Code konzentrieren.

    Das obige ist der detaillierte Inhalt vonWie schließe ich generierte Dateien von der Go-Test-Abdeckung aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn