ホームページ  >  記事  >  バックエンド開発  >  Go で個別のテスト ファイルを含むパッケージのカバレッジを測定するにはどうすればよいですか?

Go で個別のテスト ファイルを含むパッケージのカバレッジを測定するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 20:18:30754ブラウズ

 How Can I Measure Coverage for a Package with Separated Test Files in Go?

分割されたテスト ファイルによるパッケージ カバレッジのテスト

多数のテスト ファイルを含むコードベースを編成する場合、実際のテスト ファイルからテストを分割すると有利な場合があります。コードベースを明確にし、ベスト プラクティスを遵守します。このようなシナリオでは、テスト ファイルがテスト対象のコードとは異なるパッケージに存在する可能性があります。

テスト対象の実際のパッケージのカバレッジ統計を取得するときに、潜在的な課題が 1 つ発生します。デフォルトでは、テストは、テストが存在するパッケージの範囲のみを提供します。この問題は、コードとテスト ファイルが同じパッケージ内に共存する必要があるという Go のアプローチに起因します。

解決策

幸いなことに、Go はこのジレンマに対する解決策を提供します。

go test -cover -coverpkg "api_client" "api_client_tests"

「-coverpkg」フラグを指定すると、指定したパッケージ (この場合は「api_client」) のカバレッジを測定するように Go に指示できます。 )、別のパッケージ(「api_client_tests」)からテストを実行している間。これにより、API クライアント パッケージをテスト ファイルと統合することなく、その範囲を正確に確認できます。

代替アプローチ

分離されたテスト パッケージを使用すると、組織化という点では利点がありますが、このアプローチは、コードとテストを組織化する従来の Go の方法から逸脱していることに注目する価値があります。ブラックボックス テストが主な目的であり、パブリック パッケージ API のみがテストにアクセスできる場合は、代替方法が利用可能です。

  1. テスト ファイルをコードと同じパッケージ内に保持します。
  2. 「内部」可視性修飾子を使用して、パッケージのプライベート メソッドと変数へのアクセスを制限し、パッケージのパブリック API のみがテストに公開されるようにします。

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

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