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

Golang でテスト済みパッケージ以外のパッケージの統合テスト カバレッジを測定するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 20:48:03747ブラウズ

How Can You Measure Integration Test Coverage in Golang for Packages Beyond the Tested One?

Golang での統合テスト カバレッジの測定

統合テストは、REST API の信頼性と有効性を確保する上で重要な役割を果たします。ただし、これらのテストによって達成されるカバレッジを測定するのは困難な場合があります。この記事では、パッケージ境界の外部で統合テストを作成するときに正確なテスト カバレッジを取得するという一般的な問題について説明します。

ジレンマ

お問い合わせで述べられているように、 go test -cover を単独で使用すると 0 が返される可能性があります。テストされたパッケージの一部ではない統合テストのカバレッジ結果の%。その理由は、カバレッジ ツールが使用するパッケージではなく、テスト対象のパッケージのみを考慮するという事実にあります。

詳細なカバレッジに -coverpkg を使用する

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。