「go tool cover -var = foo」のポイントは、統合テストハーネスにデプロイできるインストルメント済みコードを生成することかもしれません。その目的でこの機能を使用している人はいますか?もしそうなら、定期的にカウンターをダンプする従来の方法はありますか?トリッキーな部分は、関心のあるすべてのファイルでこれをほぼ同時に行うことです。それでも、(-mode = countを使用している場合)ある程度のスキューは避けられません。
これを使用して、さまざまなテストからコードカバレッジを収集し、テスト全体で単一のコードカバレッジ数を取得し、カバーされていないコードパスを確認します*モジュールテスト*統合テスト* UIテスト* APIテスト*ユニットテスト
これを達成する方法は
カバレッジを有効にして、インストルメント化されたバイナリ(app.debug)をビルドします。以下のコマンドは、カバレッジインストルメンテーションを有効にしてapp.debugを生成します
$ go test -c -covermode=atomic -coverpkg="pkg/path/..." -o app.debug
テストではアプリの代わりにこのapp.debugを使用し、それに対してテストを実行します。私たちのものはHTTPサーバーですが、これはほとんどのアプリケーションで動作するはずです。各テストは、後でマージする必要がある別のcovファイルを生成します。
$ ./app.debug -test.coverprofile=functest.cov -- app.params
すべてのテストcovファイルをマージして、単一のcovファイルを取得します。これには、gocovmergeを使用できます。
$ find $COVERAGE_DIR -name *.cov | xargs gocovmerge > final.cov
そして、ついに、あらゆる種類のカバレッジからのコードカバレッジの完全な画像を提供するカバレッジファイルができました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加