「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go 統合テストのテスト カバレッジを測定するにはどうすればよいですか?

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

2024 年 11 月 16 日に公開
ブラウズ:292

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% と高くなります。これは、指定されたパッケージ外のテストによるものです。

追加の考慮事項

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

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3