Go でパッケージ境界を越えたカバレッジに関する洞察を得る
複数のパッケージが関係する Go プロジェクトを扱う場合、包括的なカバレッジ情報を確保することが重要です。正確なコード分析。ただし、カバレッジ レポートで別のパッケージに存在する関数が除外される状況が発生することは珍しくありません。
プロジェクトが次の構造で構成されるシナリオを考えてみましょう:
カバレッジ分析を実行すると、カバレッジ レポートに bar.go でカバーされた行が表示されないことに気づく場合があります。この矛盾は、Go のデフォルトのカバレッジ メカニズムに、テスト対象のパッケージの外部の関数が含まれていないために発生します。
解決策: Coverpkg を使用してカバレッジを拡張する
この制限を克服するには、次のようにします。 Go は、-coverpkg フラグを通じてソリューションを提供します。カバレッジ分析中にこのフラグを指定すると、カバレッジ計算を拡張して他のパッケージの関数を含めることができます。
更新されたカバレッジ コマンドは次のようになります:
go test -coverpkg=./... -coverprofile=coverage.out ./...
-coverpkg=。 /... フラグは、パッケージ間の関数呼び出しを含む、プロジェクト内のすべてのパッケージのカバレッジを計算するように Go に指示します。その後、カバレッジ レポートにより、foo.go と bar.go の両方のカバレッジに関する洞察が得られます。
このアプローチにより、db パッケージと API パッケージを個別にテストする必要がなくなり、包括的なカバレッジ分析を確保しながらテスト プロセスが合理化されます。 .
以上が複数のパッケージにわたって Go コードを包括的にカバーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。