Heim >Backend-Entwicklung >Golang >Wie kann ich die Ergebnisse der Go-Paketabdeckung zusammenfassen?

Wie kann ich die Ergebnisse der Go-Paketabdeckung zusammenfassen?

DDD
DDDOriginal
2024-12-21 10:44:10880Durchsuche

How Can I Aggregate Go Package Coverage Results?

Aggregierte Go-Paketabdeckung

Wenn Sie Tests in Ihrer Go-Bibliothek ausführen, müssen Sie möglicherweise eine konsolidierte Abdeckungsübersicht für alle Pakete erhalten Pakete. Standardmäßig stellt das Flag „-cover“ nur Abdeckungsinformationen für jedes Paket einzeln bereit.

Lösung

Seit Go 1.10 können Sie das Flag „-coverpkg“ verwenden um dieses Problem anzugehen. Führen Sie einfach den folgenden Befehl aus:

go test -v -coverpkg=./... -coverprofile=profile.cov ./...

Nachdem Sie Ihre Tests ausgeführt haben, generieren Sie die aggregierte Abdeckungsanalyse mit:

go tool cover -func profile.cov

Legacy-Methode (Pre-Go 1.10)

Für Go-Versionen vor 1.10 können Sie das folgende Bash-Skript verwenden:

#!/bin/bash

echo 'mode: count' > profile.cov

for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do
  if ls $dir/*.go &>/dev/null; then
    go test -short -covermode=count -coverprofile=$dir/profile.tmp $dir
    if [ -f $dir/profile.tmp ]; then
      cat $dir/profile.tmp | tail -n +2 >> profile.cov
      rm $dir/profile.tmp
    fi
  fi
done

go tool cover -func profile.cov

Das obige ist der detaillierte Inhalt vonWie kann ich die Ergebnisse der Go-Paketabdeckung zusammenfassen?. 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