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 サイトの他の関連記事を参照してください。