9

macosx プラットフォームでのカバレッジ テストに gcov を使用しています。セットごとに xcode の構成を終了します。

1. Build Settings ==> Generate Test Coverage Files == Yes
2. Build Settings ==> Instrument Progaram Flow == Yes
3. Build Phases ==> Link Binary with library ==> add "libprofile_rt.dylib"

次に、ファイルを生成します " Test.d, Test.dia, Test.gcno, Test.gcda, Test.o" 次にgcov-4.2 -b Test.gcno、コマンドを使用してTest.m.gcovファイルを生成します (これが必要です) が、次にテスト ケースを再度実行すると、ファイル " Test.d, Test.dia, Test.gcno, Test.gcda, Test.o" が再び生成され、データがリセットされます。

だから私は2つの質問があります:

  1. これらのカバレッジ ファイルのデータを蓄積して、プロジェクトを何度も実行し、最後にファイルを生成できるようにする方法はありますか。
  2. 1番がダメなら、merge two Test.gcno(2回の実行で生成された)ファイルを1つにする方法を教えてください。ターミナルで gcov を試します。以下は gcov コマンドのオプションです。

    gcov-4.2 -help
    Usage: gcov [OPTION]... SOURCEFILE
    
    Print code coverage information.
    
      -h, --help                      Print this help, then exit
      -v, --version                   Print version number, then exit
      -a, --all-blocks                Show information for every basic block
      -b, --branch-probabilities      Include branch probabilities in output
      -c, --branch-counts             Given counts of branches taken
                                        rather than percentages
      -n, --no-output                 Do not create an output file
      -l, --long-file-names           Use long output file names for included
                                        source files
      -f, --function-summaries        Output summaries for each function
      -o, --object-directory DIR|FILE Search for object files in DIR or called FILE
      -p, --preserve-paths            Preserve all pathname components
      -u, --unconditional-branches    Show unconditional branch counts too
    
    For bug reporting instructions, please see:
    <URL:http://developer.apple.com/bugreporter>.
    

事前にご協力いただきありがとうございます

4

1 に答える 1

21

の通常のワークフローgcovは次のとおりです。

  1. カバレッジ サポート付きのコンパイルとリンク ( -fprofile-arcs -ftest-coverage)
  2. おそらく異なるパラメータ/設定で、実行可能ファイルを複数回実行します。これにより、ファイルに累積的な使用状況情報が作成され.gcdaます
  3. gcov人間が読める形式でカバレッジ統計を取得するために呼び出します ( .gcov)

したがって、基本的に、アプリケーションを連続して実行すると、カバレッジ統計が累積されます。これらの累積は.gcdaファイルではなくファイルで行われるため、更新された統計を表示するたび.gcovに再実行する必要があります。gcov

于 2013-04-27T15:59:04.713 に答える