サーバーのさまざまなポートで実行されるRest APIベースのマイクロサービスをいくつか作成しました。次に、Rest API 呼び出しを HTTP 経由で serviceA (次に serviceB を呼び出す) に実際に送信し、その応答を取得してデコードし、予想される応答と比較するテスト コードを作成しました。
これはすべて問題なく動作しますが、次のように実行すると、テストは 0.0% のカバレッジを示しますgo test -cover
src/
|--serviceA/
| |--main.go
| |--integration_test.go
|--serviceB/
|--main.go
各サービスを手動で実行しました。
go run serviceA/main.go // Listens on port X
go run serviceB/main.go // Listens on port Y
私integration_test.go
には、文字どおり使用TestFunc()
中の 1 つの REST API エンドポイントを呼び出してから、応答を調べる があります。応答は予想どおりですが、カバレッジは 0.0% です。これは、実際にはデータを送り返したため、複数の行が実行されたため、このケースではありません。serviceA/main.go
http.Client{}
http.NewRequest()
serviceA
サービスAとBはlibパッケージではないため、ここで-coverpkg
述べたようにcmdを使用できませんでした
おそらく、ブラックボックス コンポーネント/サービスをカバーできるツールを探しています。