ホームページ > バックエンド開発 > Golang > 複数のパッケージにわたって Go コードを包括的にカバーするにはどうすればよいですか?

複数のパッケージにわたって Go コードを包括的にカバーするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-10 18:53:10
オリジナル
693 人が閲覧しました

How Can I Get Comprehensive Go Code Coverage Across Multiple Packages?

Go でパッケージ境界を越えたカバレッジに関する洞察を得る

複数のパッケージが関係する Go プロジェクトを扱う場合、包括的なカバレッジ情報を確保することが重要です。正確なコード分析。ただし、カバレッジ レポートで別のパッケージに存在する関数が除外される状況が発生することは珍しくありません。

プロジェクトが次の構造で構成されるシナリオを考えてみましょう:

  • app/api/ foo.go: にある関数を呼び出す関数が含まれています。 src/db/bar.go.

カバレッジ分析を実行すると、カバレッジ レポートに bar.go でカバーされた行が表示されないことに気づく場合があります。この矛盾は、Go のデフォルトのカバレッジ メカニズムに、テスト対象のパッケージの外部の関数が含まれていないために発生します。

解決策: Coverpkg を使用してカバレッジを拡張する

この制限を克服するには、次のようにします。 Go は、-coverpkg フラグを通じてソリューションを提供します。カバレッジ分析中にこのフラグを指定すると、カバレッジ計算を拡張して他のパッケージの関数を含めることができます。

更新されたカバレッジ コマンドは次のようになります:

go test -coverpkg=./... -coverprofile=coverage.out ./...
ログイン後にコピー

-coverpkg=。 /... フラグは、パッケージ間の関数呼び出しを含む、プロジェクト内のすべてのパッケージのカバレッジを計算するように Go に指示します。その後、カバレッジ レポートにより、foo.go と bar.go の両方のカバレッジに関する洞察が得られます。

このアプローチにより、db パッケージと API パッケージを個別にテストする必要がなくなり、包括的なカバレッジ分析を確保しながらテスト プロセスが合理化されます。 .

以上が複数のパッケージにわたって Go コードを包括的にカバーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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