Heim >Backend-Entwicklung >Golang >## Wie erreicht man trotz blinder Flecken eine 100-prozentige Abdeckung bei Funktionstests?
Im bereitgestellten Code enthält die Exit-Methode eine Bedingung, die den os.Exit ausschließt (Code-)Zeile aus den Abdeckungsergebnissen. Dadurch entsteht ein blinder Fleck im Abdeckungsbericht, da die Zeile ausgeführt, aber nicht grün angezeigt wird.
Es gibt zwei Hauptansätze, um dieses Problem anzugehen:
Verwenden von TestMain:
Umgestaltung des Codes:
Hier ist eine aktualisierte Version des Codes mit Build-Tags:
<code class="go">//+build !test package main import "os" func main() { os.Exit(doFunc()) }</code>
Dieser geänderte Code wird von Abdeckungsberichten ausgeschlossen, sodass Sie die Abdeckung Ihrer Funktionstests genau darstellen können.
Erstellen Sie die Abdeckungsbinärdatei mit:
<code class="sh">go test -c -coverpkg=. -o example -tags test</code>
Führen Sie die Tests aus mit:
<code class="sh">./example -test.coverprofile=/tmp/profile</code>
Der resultierende Abdeckungsbericht sollte nun 100 % Aussageabdeckung anzeigen, einschließlich der zuvor ausgeschlossenen Zeile in der Exit-Methode.
Das obige ist der detaillierte Inhalt von## Wie erreicht man trotz blinder Flecken eine 100-prozentige Abdeckung bei Funktionstests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!