個別のパッケージ内のテストのカバレッジ統計
コード ファイルからテストを異なるパッケージに分離すると、それぞれのパッケージのカバレッジ統計を取得することが困難になります。テスト中のパッケージ。次のディレクトリ構造を考慮してください。
api_client: Client.go ArtistService.go ... api_client_tests: ArtistService.Events_test.go ArtistService.Info_test.go UtilityFunction.go ...
go test Bandsintown-api/api_client_tests -cover を実行すると、UtilityFunction.go ファイルのみがカバーされ、実際の api_client パッケージは除外されます。
解決策:
この問題を解決するには、次のコマンドを使用します:
go test -cover -coverpkg "api_client" "api_client_tests"
このコマンドを使用すると、特に api_client パッケージに対してカバレッジ測定を有効にしてテストを実行できます。
パッケージ構造に関する注意:
ただし、コード ファイルとテストを別のディレクトリに分割することは、Go では推奨されない方法であることに注意してください。代わりに、テストを同じパッケージ内に保持することで、パッケージのパブリック API との対話にテストが正しく制限されるようになります。
ブラックボックス テストのコード アクセシビリティ:
目的は、プライベートのパッケージ レベルの変数と関数にテストがアクセスできないブラック ボックス テストを実行することです。次の回避策を使用できます。
<code class="go">// api_client.go package api_client // will not be accessible outside of the package var privateVar = 10 func Method() { } // api_client_test.go package api_client_tests import "testing" import "api_client" // import the package **without** renaming it func TestBlackBox(t *testing.T) { api_client.Method() // call the method from the "api_client" package }</code>
これにより、テストはディレクトリを変更せずにパッケージ レベルの項目にアクセスできるようになります。構造またはカプセル化ルールに違反しています。
以上がテストが別のディレクトリにある場合、パッケージのカバレッジ統計を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。