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