ホームページ > バックエンド開発 > Golang > golang関数のテストカバレッジレポートを分析するにはどうすればよいですか?

golang関数のテストカバレッジレポートを分析するにはどうすればよいですか?

王林
リリース: 2024-04-26 14:09:02
オリジナル
917 人が閲覧しました

go test -cover コマンドを使用してカバレッジ構成ファイルを生成し、gocov ツールを使用してインストールおよび HTML レポートを生成し、詳細なカバレッジ情報を表示します。具体的な手順は次のとおりです。 gocov ツールをインストールします。単体テストを実行するには、-cover フラグを追加します (go test -cover)。カバレッジ レポートを生成します: gocov Convert -html Coverage.out >

golang関数のテストカバレッジレポートを分析するにはどうすればよいですか?

Golang 関数のテスト カバレッジ レポートを分析する方法

テスト カバレッジ レポートは、コードのどの部分に問題があるかに関する情報を提供します。洞察力がテストされました。これは、カバーされていないコード領域を特定し、さらなるテスト作業の指針となるのに役立ちます。

使用 go test -cover

Go 言語には、テスト カバレッジを生成する組み込みの go test -cover コマンドがあります報告。このコマンドは、各パッケージおよび機能のカバレッジ情報を含むカバレッジ構成ファイルを出力します。

インストール gocov ツール

gocov は、視覚的なカバレッジ レポート用のツールです。 GitHub から、または次のコマンドを使用してインストールできます。

go install github.com/wadey/gocov/gocov
ログイン後にコピー

Generate HTML Report

インタラクティブな HTML レポートを生成するには、gocov ツールを使用します。 :

gocov convert -html coverage.out > coverage.html
ログイン後にコピー
ログイン後にコピー

生成された coverage.html ファイルを Web ブラウザで開くと、詳細なカバレッジ情報が表示されます。

実際的なケース

2 つの整数を加算するために使用される add という名前の関数があるとします。

package main

func add(a, b int) int {
    return a + b
}

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b int
        want int
    }{
        {1, 2, 3},
        {3, 4, 7},
    }

    for _, test := range tests {
        if got := add(test.a, test.b); got != test.want {
            t.Errorf("add(%d, %d): got %d, want %d", test.a, test.b, got, test.want)
        }
    }
}
ログイン後にコピー

カバレッジ テストの実行

go test -cover コマンドを使用して単体テストを実行します:

go test -cover
ログイン後にコピー

カバレッジ レポートの生成

カバレッジ レポートを生成して視覚化します:

gocov convert -html coverage.out > coverage.html
ログイン後にコピー
ログイン後にコピー

coverage.html ファイルを開くと、add 関数のカバレッジの割合を確認できます。カバレッジが 100% 未満の場合は、一部のコード パスがテストでカバーされていないことを示します。

以上がgolang関数のテストカバレッジレポートを分析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート