以下の内容はhttps://kiririmode.hatenablog.jp/entry/20210204/1612450799より取得しました。


Golangで複数パッケージをまとめてカバレッジを取得する

Golangでカバレッジを取得するためには、単純にgo test -coverprofileをすれば良い。そういうふうに思っていた時期がぼくにもありました。

$ go test -coverprofile=coverage.out ./... | tail -5
?       gitlab.com/eponas/epona-aws-starter-cli/internal/logging        [no test files]
?       gitlab.com/eponas/epona-aws-starter-cli/internal/template       [no test files]
?       gitlab.com/eponas/epona-aws-starter-cli/internal/terraform      [no test files]
?       gitlab.com/eponas/epona-aws-starter-cli/internal/terraform/lang [no test files]
ok      gitlab.com/eponas/epona-aws-starter-cli/internal/version        0.163s  coverage: 6.7% of statements

ここであたかもカバレッジ(6.7%)が出力されているように見えますが、実はこのカバレッジは internal/versionパッケージのものであって、プロダクトのコード全体のものではありません。

マルチパッケージの場合のカバレッジは、どのように取得すべきなのでしょうか。 この場合は-coverpkgオプションを使います。

$ go test -coverpkg=./... -coverprofile=coverage.out ./... | tail -5
?       gitlab.com/eponas/epona-aws-starter-cli/internal/logging        [no test files]
?       gitlab.com/eponas/epona-aws-starter-cli/internal/template       [no test files]
?       gitlab.com/eponas/epona-aws-starter-cli/internal/terraform      [no test files]
?       gitlab.com/eponas/epona-aws-starter-cli/internal/terraform/lang [no test files]
ok      gitlab.com/eponas/epona-aws-starter-cli/internal/version        0.296s  coverage: 1.2% of statements in ./...

-coverpkgオプションでは、カバレッジを分析するときの対象パッケージを指定できます。 ここで./...ワイルドカードを使用すると、全てのパッケージを対象としてカバレッジ分析を行えます。

-coverpkg pattern1,pattern2,pattern3
   Apply coverage analysis in each test to packages matching the patterns.
   The default is for each test to analyze only the package being tested.
   See 'go help packages' for a description of package patterns.
   Sets -cover.

続編。

https://kiririmode.hatenablog.jp/entry/20210206/1612561470




以上の内容はhttps://kiririmode.hatenablog.jp/entry/20210204/1612450799より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14