問題タブ [lcov]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - lcov を使用したソース ファイルのコード カバレッジ
コード カバレッジ レポートを生成するために lcov と genhtml を使用しています。次のディレクトリ構造では、tests/ ディレクトリにあるソース ファイルのコード カバレッジを取得できますが、src/ ディレクトリの my_file.c ファイルのコード カバレッジを取得できません。
tests ディレクトリから lcov コマンドを呼び出します。
lcov -b . --directory objects/ -c -o ./coverage/app.info
html - geninfo/genhtml で使用されるファイルを除外する方法を探しています
geninfo と genhtml (gcovr の代替、こちらを参照) を使用して、gcov によって提供されるカバレッジを使用して html ページを作成しようとしています。
geninfo
gcov の *.gcda ファイルから lcov-tracefiles を作成しますgenhtml
上記のトレースファイルから html ファイルを生成します
ただし、最終結果にはコードだけでなく、/usr/include のファイルも含まれます。
これらを除外する方法を知っている人はいますか?
マニュアルページを見てみましたが、何も見つかりませんでしたhttp://linux.die.net/man/1/geninfo
cygwin - cygwin lcov genhtml: エラー: ディレクトリを作成できませんか?
次のコマンドを実行すると、以下のエラーが発生します。関連するすべてのディレクトリにchmod 777があります。css ファイルと画像ファイルは正常に書き込まれますが、html ファイルが生成されません。私は何をしていますか?
c - コード カバレッジ - どのランがどのコードをカバーしているか?
POC: https://gist.github.com/1197309
./prime
3 つの実行のうちどれが実行されたかを判断し、どのコードをカバー./prime 0
し./prime 1
て、HTML レポートに適切に表示したいと考えています。
これは簡単な方法で可能ですか?どうやってするの?他のツールは、gcc を使用する Linux で動作する限り問題ありません。
ありがとう。
注:私はその要点の作業フォークを好むでしょう:-)私は「通常の」開発者向けLinuxディストリビューションを使用しているので、ツールについて心配する必要はありません。
その他の改善は大歓迎です。
c - lcov:複数の実行のソースのカバレッジ
- シンプルなハローワードcppアプリを作成しました。
- gcc--coverageフラグを渡してコンパイルしました
- 実行可能ファイルを実行しました
- 呼び出しによって生成されたカバレッジ
lcov --directory . --capture --output-file ic.info
- genhtmlによって生成されたhtmlベースのレポート
genhtml -o html/ ic.info
さて、質問です。実行可能ファイルを何度実行しても、常に同じ結果が得られます。つまり、行と関数のカバレッジは同じです。実行ごとにラインカバレッジを増やす必要がありますか?何か問題がありますか?
1回の実行に対してのみカバレッジを生成する場合lcov
、実行したすべての実行に対してカバレッジを生成するにはどうすればよいですか?
gcov - -aオプションを指定するとgcovがフリーズしますか?
gcov を実行すると。問題はありません。ただし、 gcov -a を実行すると。gcov がフリーズしました。出力の最後の数行は次のとおりです。
ファイル '/usr/include/boost/archive/detail/iserializer.hpp' 行数: 55 の 78.18%
ファイル '/usr/include/boost/serialization/extended_type_info_typeid.hpp' 行数: 27 行中 40.74% /usr/include/boost/serialization/extended_type_info_typeid.hpp:'extended_type_info_typeid.hpp.gcov を作成中
なぜそれが起こっているのか知っていますか?「-a」が必要な理由は、lcov を使用するときに、そのオプションを gcov に与えるためです。geninfo をハックしてそのオプションを無視できますが、最終的にはパブリック システムで lcov を実行するので、そうしないことを好みます。
ご意見ありがとうございます。
c++ - CMake と lcov: gcno ファイルが見つかりません
CMake ベースのプロジェクト (複数のターゲットで構成される) でコード カバレッジを取得しようとしています。
まず、次のように gcno ファイルを生成します。
*.gcnoは次の場所に生成されます
次に、*.gcnaファイルを生成するテストを実行します
lcov を再度実行すると、次のようになります。
次のエラーが表示されます。
*.gcnoファイルを*.gcdaが生成されるディレクトリに手動で移動すると、動作するようです。
ご協力いただきありがとうございます!!!
gcov - gcdaファイルを含む複数のディレクトリのlcov
gcovとlcovを使用してカバレッジレポートを生成したいと思います。
私が今までやったこと:-
私がしなければならないこと:-
これらのデータファイル(.gcda)を使用する必要があり、lcovを使用してクリーンなレポートを作成したいと思います。
問題:-
ソースファイルが存在する複数のディレクトリがあり、各ディレクトリ内にオブジェクトファイルを保持するためのobj/ARCHディレクトリを作成しています。
したがって、最終的なディレクトリ構造は次のようになります。
M3、M4、M5と同じです。
プロトレベルからlcovを実行していますが、.gcdaファイルは検出されますが、.hおよび.Cファイルの検出でエラーが発生します。このプロセスパスを独立させる方法はありますか?
前もって感謝します。
cygwin - lcov を Cygwin で動作させる
lcov を Cygwin で動作させるには、どの Cygwin パッケージをインストールする必要がありますか?
lcov を実行しようとしたところ、次のメッセージが表示されました: コマンドが見つかりません
助けてくれてありがとう。
PS gcov が機能することを指摘する必要があります。
lcov - lcovおよびg++での正確な関数カウント
私はUbuntu12、g ++、lcovを使用しています。後者は。とともにインストールされapt-get install lcov
ます。
コンパイルに成功し、を使用してhtmlレポートを生成していgenhtml
ます。ラインカバレッジ情報は良さそうですが、関数カバレッジカウントの多くは奇妙に見えます。たとえば、コンストラクタと仮想デストラクタのみを含む1つのC ++クラスは、7つの関数を持つものとしてlcovによって報告されます。したがって、セッション中に両方に電話をかけた場合、私のカバレッジは2/7になります。
これは、呼び出されることのない1つの関数を持つクラスを示す出力例です。その関数が何であるかを理解することはできません:
誰かが壊れた関数名をデコードし、膨らんだ関数の数を説明し、問題を解決する方法を提案できますか?
前もって感謝します。
アップデート
OK、以下の元の質問に答えたので(コメントを参照)、これらの内部のctorとdtorが関数カバレッジ統計を破壊するのを防ぐ方法についての提案を募集しています。関数カウントを自分で作成した関数に制限するにはどうすればよいですか?