問題タブ [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.
javascript - lcov と istanbul を使用しているときに、Javascript コードカバレッジの一部のステートメントを無視するにはどうすればよいですか?
コードコメントにあるディレクティブをsonarqubeに考慮させるにはどうすればよいですか? このようなコメントを使用していくつかのブランチを無視する方法を説明するイスタンブールのページがあります
( https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.mdを参照)
これは、Istanbul によって生成された HTML レポートではうまく機能しますが、Sonarqube では機能しません。
makefile - lcov は、単一のプロセスで .gcda ファイルを処理しているように見えます。多くのコアがあり、それらをこの処理に使用したいと考えています。どのように?
私が実行した場合:
すべてのコアを利用するのではなく、一度に .gcda ファイルを 1 つずつ処理しているようです。coverage_all.info
すべてのコアを使用しながらファイルを作成できるように、この手順を書き直すことはできますか?
make ファイルに入れて-j
オプションを指定して make を実行し、複数のジョブを生成して、それぞれの結果を別のファイルに記録することを考えています。次に、すべてのジョブが完了したら、おそらくlcov --add-tracefile
オプションを使用してそれらをマージします。
誰かがこのようなことをする方法を知っていますか?
sonar-runner - sonar-runner lcov レポートの不一致
SonarQube コミュニティ、
Node/JS プロジェクトの分析を行うと、istanbul 経由で報告された値のカバレッジは、SonarQube サーバーで報告および表示されるものとは大きく異なります。SonarQube サーバーは 4.5.4 です。ソナー ランナーのバージョンは 2.4 です。プロジェクトは次のレポートを生成しました。
すべてのファイルのコード カバレッジ レポート
ステートメント: 67.65% (1520 / 2247) 分岐: 49.76% (418 / 840) 関数: 65.13% (269 / 413) 行: 68.31% (1481 / 2168) 無視: なし
ファイル ステートメント 分岐 関数 行
クラス/ 94.4% (118 / 125) 70% (7 / 10) 100% (9 / 9) 94.35% (117 / 124) ヘルパー/ 84% (126 / 150) 75.44% (43 / 57) ) 86.67% (26 / 30) 84.25% (123 / 146) サービス/ 82.64% (976 / 1181) 66.67% (272 / 408) 81.63% (160 / 196) 83.26% (955 / 1147) view_controllers/ 37.93% ( 300 / 791) 26.3% (96 / 365) 41.57% (74 / 178) 38.08% (286 / 751) 2015 年 9 月 15 日火曜日 17:01:21 GMT+0000 (UTC) にイスタンブールで生成
SonarQube 4.5.4 のドリルダウンで示されるカバレッジ値は、他のレポートが示すものとは大きく異なります (画像を投稿できなかったことをお詫びしますが、これを行うほどの評判はまだありません)。
技術的負債 64d
発行数 5,707
ブロッカー 0
クリティカル 3
メジャー 3,922
マイナー 696
情報 1,086
ユニット テスト カバレッジ 28.6% ライン カバレッジ 25.6%
コンディション カバレッジ 49.8%
SQALE評価A
技術的負債比率 1.0% プロジェクトには、次の品質ゲート条件に関する警告があります: カバレッジ 28.6% < 70.0% 重大な問題 3 > 0クライアント プロファイル: ソナー方式 (JavaScript)
品質ゲート: SonarWayWithFindbugsForNFSWithBuildBreaker - java (デフォルト)
コード行数 104,320
JavaScript
ファイル 426
ディレクトリ 109
行 120,238
関数 6,726
クラス 4
ステートメント 32,377
アクセサー 0 無用なコード 18,260 18,260 行の重複 重複 41.5% 行 49,923
ブロック10,915
ファイル 89 複雑さ 4.9 /関数 4.5 /クラス 29.5 /ファイル 合計: 12,588
実際の lcov.info ファイルが必要な場合、またはこの問題をよりよく分析するために上記のデータの png ファイルが必要な場合は、電子メールで直接送信できます。
このような不一致がある理由を突き止めようとするために、私に何を提案しますか?
正しいデータをログに記録する方法についてご意見をお聞かせください。
ダグ
relative-path - lcov絶対パスと相対パス
lcov は、絶対パスと相対パスのどちらを使用するかをどのように決定しますか?
app
製品の各共有ライブラリのサブディレクトリと、いくつかのバイナリのサブディレクトリを含むディレクトリがあります。このようなもの:
ただし、 および を実行するlcov
とgenhtml
、ディレクトリは次のようにリストされます。
つまり、私の共有ライブラリ ディレクトリの 1 つに含まれるすべてのものは相対パスを使用し、それ以外のものはすべて絶対パスを使用します。 なんで?
lcov
andの呼び出しgenhtml
は非常に簡単です。
triggers - SystemC の GNU ライブラリ GCOV、LCOV を使用したコード カバレッジのトリガー ポイント?
コード カバレッジ分析のために SystemC で GNU Libs GCOV と LCOV を使用しています。すべてうまくいきますが、トリガーポイントを持つことができるかどうか疑問に思っていましたか? オシロスコープにトリガーオプションがあり、トリガーポイントでの状態をキャプチャするのと同じです。その特定のインスタンスでのカバレッジ レポートを取得したいと考えています。適切な用語であれば、フットプリントのようなものです。
または、それが不可能な場合、特定の時点でのカバレッジ レポートを作成することは可能ですか?
ありがとう。
ios - getcov と lcov による xcode7 コード カバレッジ
最新の Xcode では、ローカル ビルドまたは統合のコード カバレッジを表示できるようになりました。カバレッジ結果をエクスポートして、このデータの分析を構築したいと考えています。
プロジェクトhttps://github.com/jonreid/XcodeCoverageは、レポート データを xml または html にエクスポートする簡単な方法のようで、それを使用して別のものを構築できます。しかし、私はいくつかの困難を抱えています。
セットアップはかなり簡単です。
- リポジトリからプルします。
- プロジェクトに XcodeCoverage を追加します。
- exporting.sh を実行するビルド フェーズ スクリプトを追加します。
- テストを実行します。
- getcov を実行してデータを表示します。
getcov を実行すると、次の出力が得られます。
lcov または getcov スクリプトのバージョンに関する情報が欠落しているようで、coverage.info のビルドに失敗しています。
Xcode7でこれを使ってみた人はいますか
Xcode からカバレッジ データをエクスポートするための他の便利なツールを知っている人はいますか?
ありがとう、
python - 共有ライブラリから直接llvmカバレッジを初期化する方法は?
フラグを使用してライブラリをコンパイルし、-fprofile-arcs -ftest-coverage -pg
フラグを使用してリンクした C/C++ 共有ライブラリをテストして-fprofile-arcs -ftest-coverage
います。
ctypes python ルーチンを使用して、Python で共有ライブラリを読み込んでテストしています。
私のpythonバイナリがフラグにリンクされていなかったため、Gcdaファイルはpythonから生成されません-fprofile-arcs -ftest-coverage
。
そこから python を実行すると、適切なカバレッジ フラグでコンパイルされたlldb/gdb
gcda ファイルが生成されます。lldb/gdb
適切なカバレッジ関数を呼び出してプロファイル アークを初期化し、共有ライブラリ内の関数を呼び出す前にカバレッジをテストしてから、適切なカバレッジ クロージング ルーチンを呼び出すことはできますか?
ライブラリで nm を実行したところ、次のルーチンに気付きましたが、それらを呼び出す方法がわかりません。
llvm_gcov_init はパラメータを取るように見えるので、Python から直接呼び出すことはできません。
コード カバレッジを直接初期化したいのですが、複数のマシンでカバレッジを使用して Python を再コンパイルする必要はありません。