ホームページ >バックエンド開発 >Golang >別々のフォルダー間で Go コードを正確にカバーするにはどうすればよいですか?

別々のフォルダー間で Go コードを正確にカバーするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 15:29:09504ブラウズ

How Can I Get Accurate Go Code Coverage Across Separate Folders?

Golang の個別のフォルダーにわたるコード カバレッジの検出

次のような構造を持つプロジェクト内:

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test

の場合Staff_test を実行すると、stuff.go のコード カバレッジは 0.0% と報告されます。 *_test.go をスタッフ フォルダーに移動すると問題は解決しますが、プロジェクトの構造と Go のベスト プラクティスについて疑問が生じます。

-coverpkg フラグによる解決策

プロジェクト構造を変更せずにこの状況に対処するには、-coverpkg フラグを使用します。このフラグを使用すると、カバレッジ分析に含めるパッケージを指定できます。

指定されたプロジェクト構造の場合、コマンドは次のようになります。

go test ./test/... -coverprofile=cover.out -coverpkg ./...

このコマンドは、./test/ 内のすべてのテストを分析します。 .. ./....に一致するパッケージを含むカバレッジ情報のパス。

カバレッジの生成と表示レポート

テストが実行されたら、go ツールのカバーを使用してカバレッジ レポートを生成します。

go tool cover -html=cover.out

これにより、分析されたパッケージのカバレッジ情報の詳細を示す HTML レポートが作成されます。プロジェクトのフォルダー全体のコード カバレッジに関する洞察。

以上が別々のフォルダー間で Go コードを正確にカバーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。