ホームページ > バックエンド開発 > Golang > Go 統合テストのテスト カバレッジを測定するにはどうすればよいですか?

Go 統合テストのテスト カバレッジを測定するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-09 02:53:02
オリジナル
188 人が閲覧しました

How to Measure Test Coverage for Go Integration Tests?

Go 統合テストのテスト カバレッジの決定

統合テストは、多くの場合、モックや制御によって、システム全体の機能を評価することを目的としています。外部依存関係。ただし、統合テストのテスト カバレッジを決定するには、特有の課題が生じます。

非パッケージ テストのカバレッジの測定

説明したシナリオでは、テストはパッケージから分離されています。彼らはテストします。その結果、 go test -cover コマンドはカバレッジ 0% を報告します。これに対処するには、-coverpkg ディレクティブを利用できます。

特定のパッケージ カバレッジに -coverpkg を使用する

-coverpkg ディレクティブにより、指定されたパッケージのテスト カバレッジの測定が可能になります。テストが外部のものであっても、パッケージに含めます。引数としてパッケージ パスを受け取ります。

たとえば、次のコマンドは mypackage パッケージのカバレッジを測定します。

$ go test -cover -coverpkg mypackage ./src/api/...
ログイン後にコピー

このアプローチにより、統合におけるパッケージ カバレッジの対象を絞った分析が可能になります。テスト。

カバレッジ出力の例

次の例を考えてみましょう。 API パッケージには main_test.go のテストが含まれています。ビジネス ロジックのほとんどは mypackage パッケージ内にあります。 -coverpkg を指定してコマンドを実行すると、カバレッジがより正確に表現されます。

$ go test -cover -coverpkg mypackage ./src/api/...
ok      /api    0.190s  coverage: 50.8% of statements in mypackage
ok      /api/mypackage   0.022s  coverage: 0.7% of statements in mypackage
ログイン後にコピー

この出力は、テストが mypackage パッケージ内のステートメントの 50.8% をカバーしていることを示しています。対照的に、-coverpkg を使用しない場合、カバレッジは 71.0% と高くなります。これは、指定されたパッケージ外のテストによるものです。

追加の考慮事項

価値があります。モックの複雑さとシステム全体のテストの性質により、統合テストは通常​​、単体テストよりもカバーするコードが少ないことに注意してください。ただし、上で概説したアプローチは、特に関連するパッケージに対する統合テストの実際のカバレッジを測定する方法を提供します。

以上がGo 統合テストのテスト カバレッジを測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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