GO プロジェクトの個別フォルダー内のコード カバレッジの不一致を解決する
特定の構造を持つプロジェクトで作業しているとき、パッケージとそのテストは別のフォルダーに配置されている場合、問題が発生しました。 Staff_test.go からのstuff.goでコードを実行したにもかかわらず、カバレッジレポートには0.0%と表示されました。
考えられる原因と解決策
この問題はGOのデフォルトが原因で発生しますカバレッジ分析動作。テスト対象のパッケージにのみ適用されます。これを解決するには、-coverpkg フラグを利用して、カバレッジ データを収集する必要があるパッケージを指定できます。
-coverpkg オプションを使用すると、test/stuff/stuff_test.go 内のテストが収集する必要があることを指定できます。また、stuff/stuff.go のコード カバレッジも考慮してください。これにより、カバレッジ分析に関連するすべてのパッケージが確実に含まれるようになります。
-coverpkg の使用法を示すコマンドの例を次に示します。
go test ./test/... -coverpkg ./...
このコマンドは、テスト パスに一致するパッケージでテストを実行します。 ./....
カバレッジの表示レポート
テストが実行されたら、次のコマンドを使用してカバレッジ レポートを生成および表示できます。
go tool cover -html=cover.out
このコマンドは、cover.out という名前の HTML カバレッジ レポートを生成します。これを Web ブラウザで開くと、カバレッジ データを視覚化できます。
以上が別のフォルダーでのテストの実行が成功したにもかかわらず、Go コード カバレッジが 0% と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。