提供されたコードでは、exit メソッドに os.Exit を除外する条件が含まれています。カバレッジ結果の (コード) 行。この行は実行されても緑色で表示されないため、カバレッジ レポートに盲点が生じます。
この問題に対処するには、主に 2 つのアプローチがあります。
TestMain の使用:
コードのリファクタリング:
ビルド タグを使用したコードの更新バージョンを次に示します。
<code class="go">//+build !test package main import "os" func main() { os.Exit(doFunc()) }</code>
この変更されたコードはカバレッジ レポートから除外され、機能テストのカバレッジを正確に表すことができます。
次のコマンドを使用してカバレッジ バイナリを構築します。
<code class="sh">go test -c -coverpkg=. -o example -tags test</code>
次のコマンドを使用してテストを実行します。
<code class="sh">./example -test.coverprofile=/tmp/profile</code>
結果のカバレッジ レポートには、exit メソッドで以前に除外された行を含め、100% のステートメント カバレッジが表示されるはずです。
以上が## 盲点があるにもかかわらず、機能テストで 100% のカバレッジを達成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。