統合テストは、REST API の信頼性と有効性を確保する上で重要な役割を果たします。ただし、これらのテストによって達成されるカバレッジを測定するのは困難な場合があります。この記事では、パッケージ境界の外部で統合テストを作成するときに正確なテスト カバレッジを取得するという一般的な問題について説明します。
お問い合わせで述べられているように、 go test -cover を単独で使用すると 0 が返される可能性があります。テストされたパッケージの一部ではない統合テストのカバレッジ結果の%。その理由は、カバレッジ ツールが使用するパッケージではなく、テスト対象のパッケージのみを考慮するという事実にあります。
解決策は、-coverpkg ディレクティブを使用することにあります。このオプションを使用すると、パッケージが明示的にテストされていない場合でも、カバレッジを測定したい特定のパッケージを指定できます。たとえば、次のコマンド:
$ go test -cover -coverpkg mypackage ./src/api/...
は、テスト自体が別のパッケージで定義されている場合でも、mypackage パッケージ内のカバレッジを測定します。
違いを説明するために、次のシナリオを考えてみましょう:
-coverpkg なし:
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statements
-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
ご覧のとおり、-coverpkg を使用すると mypackage のカバレッジが大幅に向上し、実際に達成されるカバレッジをより正確に表現できます。
-coverpkg を利用することにより、ディレクティブを使用すると、開発者は統合テストで使用されるパッケージのカバレッジを効果的に測定でき、追加のテストが必要な領域を特定できるようになります。この強化されたカバレッジ レポートは、より堅牢で信頼性の高いソフトウェア システムの開発に貢献します。
以上がGolang でテスト済みパッケージ以外のパッケージの統合テスト カバレッジを測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。