コードカバレッジは、テストによって実際にカバーされるコードの量を決定する方法です。 このメトリックは、他のテストを記述する必要があるかどうかを判断するのに非常に便利です。 この記事では、GoLangのコードカバレッジについて説明します。
目次
コードカバレッジとは何ですか?
コードカバレッジは、パッケージのテストカバレッジを決定する方法です。 テストカバレッジは、テストによってカバーされる関数の量の概要を提供するメトリックです。
に従うルールGoでテストカバレッジを行うには、_testサフィックスを追加してテストファイルを作成します。
filename_test.go
次に、そのファイルで単にテスト関数を使用します。 カバレッジレポートを生成するには、その後に-coverフラグが追加されます。
go test -cover
このカバーフラグは、テストするパッケージのカバレッジレポートを生成するようにテストツールに指示します。
カバレッジの簡単な例
ここでは、カバレッジツールによって生成されたいくつかの簡単なカバレッジレポートを見ていきます。 まず、単一の関数を含む単純なファイルを使用し、テスト関数でテストします。 我々はそれをテストしているので、カバレッジレポートは、カバレッジが100%であると言 つまり、すべての機能はテストによってカバーされます。
メインファイルには次のものが含まれています:
package mainfunc f() int {return 2}//func g() int {//return 4//}func main() {}
テストファイルは次のとおりです:
package mainimport "testing"func TestF(t *testing.T) {v := f()if v != 4 {t.Error("Fails")}}
このファイルには、関数の簡単なテストが含まれています。 Coverageコマンドを実行すると、次のような出力が得られます:

見ることができるように、テスト適用範囲は100%です。 さて、他の関数のコメントを解除して、カバレッジレポートを見てみましょう。 私たちはこのようなものが表示されます:

テストカバレッジは50%に低下しました。 2つの機能があるため期待されていましたが、テストでは1つだけがカバーされました。 これはテストカバレッジが行うことであり、関数の総数に対して行われたテストの割合を計算し、それに応じて出力を生成します。
Go Code Coverage HTML Report
htmlを介してグラフィカルな方法でカバレッジレポートを取得できます。 まず、カバープロファイルを設定する必要があります。 これを行うには、以下に示すようにコマンドを使用します:
go test -coverprofile=coverage.out // coverage.out is the output filename
これで、次のコマンドを使用してグラフィカルなカバレッジレポートを生成できます。
go tool cover -html=coverage.out
カバレッジグラフィックは次のようになります:

見ることができるように、カバレッジを表示するグラフィカルな方法は、Goが提供する非常に便利な機能です。
コードカバレッジの重要性
単体テストが設定された後、コードカバレッジは焦点を当てる必要がある重要な側面です。 これは、単体テストをより良くし、テストを補完するものとして機能します。