go test -cover
構築中のサービスのテスト カバレッジを測定するために使用しようとしています。これは REST API であり、スピンアップしてテストし、テスト HTTP 要求を作成し、HTTP 応答を確認しています。これらのテストはサービスのパッケージの一部ではなく、go tool cover
0% のテスト カバレッジを返します。実際のテストカバレッジを取得する方法はありますか? 特定のエンドポイントでの最良のシナリオのテストでは、特定のエンドポイント ハンドラーのコードの少なくとも 30 ~ 50% をカバーし、これをさらに改善するために一般的なエラーのテストを追加することを期待します。
6272 次
3 に答える
1
私の知る限り、カバレッジが必要な場合は、実行する必要がありますgo test -cover
。
ただし、渡すことができるフラグを追加して、これらの追加のテストを有効にするのは簡単なので、それらをテスト スイートの一部にすることはできますが、通常は実行しないでください。
したがって、コマンドラインフラグを追加しますwhatever_test.go
var integrationTest = flag.Bool("integration-test", false, "Run the integration tests")
次に、各テストで次のようなことを行います
func TestSomething(t *testing.T){
if !*integrationTest {
t.Skip("Not running integration test")
}
// Do some integration testing
}
次に、統合テストを実行します
go run -cover -integration-test
于 2015-02-05T17:56:54.653 に答える