21

go test -cover構築中のサービスのテスト カバレッジを測定するために使用しようとしています。これは REST API であり、スピンアップしてテストし、テスト HTTP 要求を作成し、HTTP 応答を確認しています。これらのテストはサービスのパッケージの一部ではなく、go tool cover0% のテスト カバレッジを返します。実際のテストカバレッジを取得する方法はありますか? 特定のエンドポイントでの最良のシナリオのテストでは、特定のエンドポイント ハンドラーのコードの少なくとも 30 ~ 50% をカバーし、これをさらに改善するために一般的なエラーのテストを追加することを期待します。

4

3 に答える 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 に答える