2
  1. シンプルなハローワードcppアプリを作成しました。
  2. gcc--coverageフラグを渡してコンパイルしました
  3. 実行可能ファイルを実行しました
  4. 呼び出しによって生成されたカバレッジ
    lcov --directory . --capture --output-file ic.info
  5. genhtmlによって生成されたhtmlベースのレポート
    genhtml -o html/ ic.info

さて、質問です。実行可能ファイルを何度実行しても、常に同じ結果が得られます。つまり、行と関数のカバレッジは同じです。実行ごとにラインカバレッジを増やす必要がありますか?何か問題がありますか?

1回の実行に対してのみカバレッジを生成する場合lcov、実行したすべての実行に対してカバレッジを生成するにはどうすればよいですか?

4

1 に答える 1

2

カバレッジ結果がどのように生成されるかを誤解していると思います。lcovあなたの質問で述べられているように、カバレッジを生成していません。プログラムの実行時に生成されるカバレッジ結果のみを処理します(質問のステップ3)。

したがって、プログラムを複数回実行すると(ステップ3)、回線の実行時間が長くなります(カバレッジは必要ありません)。これを確認するには、複数のカバレッジレポートを生成できます(手順3、4、5を複数回実行します)。手順5で生成されたレポートでは、コード内の行の実行時間が長くなっていることがわかります。

于 2011-10-28T09:47:55.447 に答える