機能と設定

できることのすべて、調整できることのすべて

機能セットの完全なツアーと完全な設定リファレンス — すべての設定にデフォルト値付き。

VSIX をダウンロード

評価版リリース。以下のすべての機能は無料の 14 日間試用期間中にご利用いただけます。試用期間の終了後はリクエストによりライセンスキーをご利用いただけます。キーは自動的に発行され、ユーザーごとに個々の機能を有効化または制限できます。ライセンスをリクエスト →

AI がテストを書いたなら

生成されたテストスイートに対するカバレッジ

概要では一般論として述べています。ここではそれを機能一覧そのものに突き合わせます。生成されたテストスイートは特徴的な形で失敗するからです — すべての行に触れ、判定の半分は一度も通らず、テスト名に挙がっているのに一度も呼ばれない関数がいくつかある — そして以下のうち五つが、まさにその形を可視化します。

  • 分岐カバレッジと MC/DC は、各アームと各判定のホバーとあわせて、行が実行されたことと判定が実際に通されたことを切り分けます。ハッピーパスだけをたどるスイートは、行では 100% 近く、分岐では 50% 近くと出ます。この開きこそが所見です。テストが全部緑でも、そこには何も現れません。
  • 複合スコアは調和平均なので、強い指標が弱い指標を覆い隠せません。生成されたスイートに当てるべき計算はまさにこれです。行の数値と分岐の数値を単純平均すれば、見るべき唯一の数値が埋もれてしまいます。
  • デッドコード警告は、計測可能な行がありながらカバレッジがゼロの関数について、Problems パネルに項目を立てます。テスト名に関数を挙げておきながら一度も到達しないスイートは、ほかのどこでも失敗しません。
  • 差分カバレッジは git のベース ref と比較して、以上のすべてを変更されたばかりの行に絞り込みます。リポジトリの通算平均ではなく、今日の午後にあなたが受け入れたコードです。通算平均のままなら、大きな既存スイートはいつまでも健康そうに見え続けます。
  • Copy Uncovered Lines は、一度も実行されなかったものだけを Markdown で出力します。つまり、そのスイートを書いたアシスタントにそのまま貼り戻せる形です。

これらのどれ一つとして、テストを読んでその良し悪しを判定するものではありませんし、そう主張しているとも取らないでください。アサーションが一つもないテストでも、触れた行はすべてカバー済みになります。ここで測っているのは、レビュアーが頭の中に抱えきれない部分 — どのコードが一度も実行されなかったか、です。

この拡張機能だけの機能

行カバレッジは 100% です。それでもバイナリの 312 バイトは一度も実行されていません。

ここにある他のすべての指標はソースから測定されます。コードを計装し、計装済みビルドを実行し、何が発火したかを数えます。オブジェクトコードカバレッジは、ソースベースのツールでは決して届かないものを測定します — ビルドされたバイナリのどれだけが実際に実行されたかを、命令バイト単位で、命令ストリームを観測して測ります。コンパイラはソースのどの行にも対応しないコードを出力します。配列境界チェック、switch のジャンプテーブル、レジスタのスピル、除算や浮動小数点のランタイム補助ルーチンなどです。これらはソースには一切現れないため、ソースベースのツール — この拡張機能自身が読む他のどの指標についても含め — はそれが実行されたかどうかを示せません。また、手書きのアセンブリは決して計装されないため、これはアセンブリを覆うのかという問いに答えられる唯一の指標でもあります。

DO-178C はこれを明示しています。レベル A では MC/DC に加えて必須です。これを読み取る VS Code 拡張機能は他にありません。組み込みターゲットからこれを得る方法 →

機能一覧

コア機能

  • 計測されたすべてのファイルの Coverage ビュー、概要ルーラー、Annotated Source。エディター自身のガターには、既定では印を付ける価値のあるものだけ — MC/DC のバー、前回の実行以降の三角形、編集行のドット — が表示され、未カバーのみのバーやヒット数のヒートマップは設定 1 つで有効にできます。
  • トレースファイルが提供する内容に応じた、行単位のステートメント、ブランチ、関数、リージョン、MC/DC、C++インスタンス化カバレッジ。
  • 複数フォーマットの取り込みと、記録された由来情報を伴う複数実行の決定論的マージ。
  • パスの再マッピング — CIビルドマシンのパス → ローカルワークスペース。
  • 差分カバレッジ — gitのベース参照と比較して変更された行のみを装飾。
  • 複合スコアに応じて色分けされるExplorerバッジと実行全体のステータスバー項目。
  • watchモード — トレースファイルが変更されると自動的に再読み込み。
  • Run Tests with Coverage — ワークスペースのルートからテストランナーを認識し、カバレッジを有効にして実行し、書き出されたものを読み込みます。
  • リモートのトレースファイル — coverageFile.paths の項目に https:// URL を書けます。CI のアーティファクトは remote.headers で設定したヘッダー付きで条件付き(ETag / Last-Modified)取得され、ローカルファイルと同様に読み込まれ、remote.refreshMinutes でタイマーにより再取得されます。取得に失敗したときは最後にダウンロードしたコピーが代わりに読み込まれます。
  • パス内の変数 — すべてのパス設定で ${workspaceFolder}、${workspaceFolderBasename}、${userHome}、${env:NAME}、${command:id}、${config:section.key} が使えます。未知の変数は書かれたとおりに残されるため、打ち間違いは消えてなくなるのではなく検出ログに現れます。
  • マルチルート ワークスペース — 各フォルダーは自身の設定(.vscode/settings.json または .code-workspace の項目)から検出され、そのトレースファイルは 1 つの実行にマージされ、Coverage ビューはファイルをフォルダーごとにまとめ、フォルダーの追加や削除はそれ自体でカバレッジを再読み込みします。
  • 再読み込みのトリガーが 2 つ追加 — ワークスペース外の絶対パスの coverageFile.paths 項目はポーリングされるため、そこに現れたファイルは読み込まれます。また watch.reloadAfterTasks に挙げたタスク(npm: test)の終了時に、watch モードのオン・オフにかかわらずカバレッジを再読み込みします。
  • キャンセルできる進行状況 — 10 個以上、または合計 8 MB 以上のトレースファイルの読み込みと、すべての Generate Full HTML Report は、「キャンセル」ボタン付きの進行状況の通知の下で実行されます。キャンセルすると前回の実行が読み込まれたまま残ります。
  • VS Code 自身の Test Coverage ビュー — すべての読み込みはエディターの Test Coverage API を通じても公開されるため(testCoverage.publish)、Test Explorer のカバレッジパネル、Explorer のファイルごとのパーセンテージ、エディター自身の Show Inline Coverage トグルが同じ数値を示します。Show in Test Coverage View は求めに応じて公開し、パネルを開きます。テストに名前がある場合(lcov の TN:)、ビューでファイルのカバレッジをテストごとに絞り込めます。
  • 再マッピングルールの提案 — 読み込みで一致しないファイルが残ると(ローカルのチェックアウトに対するコンテナや CI のパス)、拡張機能はそれらの最も多くを説明する pathRemap ルールを推定し、読み込み結果に Apply Suggested Remap を、パレットに Suggest Path Remap Rule を提示します。クリックしなければ何も書き込まれません。
  • 無視グロブ — fuciniCoverage.ignore(vendor/**、**/*.generated.ts)は読み込み時にファイルを丸ごと実行から外すため、すべてのビュー、ゲート、エクスポートがそれら抜きで数えます。読み込み結果はいくつ外したかを述べ、出力がそれぞれの名前を挙げます。
  • 未計測と未カバー — どのテストも読み込まなかったファイルが、知らないうちに 0% として採点されることはありません。そのようなファイルではステータスバーが not measured と示し、unmeasured.mode でそれらを Coverage ビューに列挙するか、各ファイルを未カバーファイルとして数えるかを選べ、threshold.unmeasuredFiles でその数をゲートにできます。
  • 統合の結果が見える — 複数のトレースファイルを読み込むと、各ファイル行に数値の出所であるレポート名が付き、その数値が古いレポートを上書きした箇所ではバッジに枠線が付き、各トレースファイル行には上書きされた、あるいは上書きしたファイル数が表示され、トレースファイル行をクリックするとそのファイルがツリー内で強調表示されます(coverageView.mergedMarks)。

複合スコアとコンプライアンス

行、ブランチ、関数、リージョン、MC/DC、インスタンス化にわたる単一の加重調和平均。調和平均であるため、弱い指標が完璧な指標によってマスクされることはありません。重みはデフォルトで IEC 61508 / ISO 26262 / DO-178C の各レベルに整合しており、COMPLIANT / NON-COMPLIANT の判定は、指標ごとの閾値と設定可能なモードによって決まります。

The status-bar hover card: NON-COMPLIANT, 3 of 5 gates below threshold — functions and regions pass, lines and branches miss narrowly (amber), MC/DC misses outright (red)Screenshot pending — add assets/img/statusbar.png (see SCREENSHOTS.md).

エディタ内解析

  • 関数CodeLens — 関数ごとのカバレッジ%、クリックで最初の未カバー行にジャンプ。
  • ブランチおよびMC/DCホバー — 分岐ごとのTaken/Not-Taken回数と判定ごとの条件/ベクター内訳;オプションの色付きMC/DCマージンガター。
  • デッドコード警告 — 測定可能な行があり、カバレッジがゼロの関数に対するProblemsパネルでの警告。
  • Next/Previous Uncovered ナビゲーション。
  • 不一致の警告 — ファイルの内容が実行結果と合わなくなったとき。保存やディスク上の変更に合わせて更新され、ホバーで正確な差分を示します。
  • 前回の実行以降 — 前回実行され今回実行されなかった各行に赤い三角形、逆に緑の三角形。概要ルーラーとホバーのヒット数付き。
  • 編集中のバッファ — 編集に合わせてすべてのマーク、ホバー、CodeLens がテキストと一緒に移動し、書き換えた行からは退き、灰色の点がその理由を示します。
  • エディターのガターモード — editorGutter.mode でガターを所見だけにとどめる(off)、一度も実行されなかったすべての行にバーを、分岐のアームが一度も通らなかった行に琥珀色のバーを置く(uncovered)、あるいは実行されたすべての行に実行回数が多いほど濃い暖色を加える(heatmap)。Choose Editor Gutter Mode... でパレットまたはステータスバーのメニューから切り替えます。
  • インラインのヒット数 — hitCounts.inline は文が始まる各行の後ろに ×12 を書き込みます。×0 も含めて。Toggle Inline Hit Counts で切り替えます。
  • 行ごとの Problems 項目 — problems.perLine は、開いているドキュメントで一度も実行されなかった行のブロックごとに Information 診断を置き(デッド関数は 40 項目ではなく 1 項目)、任意で分岐のアームが一度も通らなかった各行にも置きます。項目は編集に合わせて行に追従します。
  • 行の色付けとスクロールバーの地図 — lineHighlight はガターの印の代わりに(あるいはそれに加えて)行そのものの背後に半透明の色を敷き、overviewRuler はスクロールバーの線を単独で決めます。ガターをオフにすれば、ファイルのギャップの地図だけが残り、コードの横には何も出ません。
  • この行をカバーしたのはどのトレースファイルか — 複数のレポートをマージしているとき、実行回数のホバーがその行をカバーしたレポートをすべて挙げ(lcov の TN: のスイート名も含みます)、Coverage ビューでトレースファイルの行をクリックすると、そのファイルが測定した行が光ります。
  • 赤・琥珀・緑 — editorGutter.mode と lineHighlight の coverage モードは、計測されたすべての行をカラースケールの色で塗ります。ステータスバーのモードボタンと Alt+G で次のモードへ移ります。
  • 自分の色をプレビュー — カラースケールとヒートマップの濃淡(heatmap.colors、heatmap.colorsDark)は設定項目で、設定ページでは選んだその場でライトとダークのエディターにプレビューされます。
  • ファイルがどのレポートから来るか — 2 つのレポートが同じコードを計測しているとき、coverageFile.sources のルール、または Choose Coverage Source for This File... が、最新のものを勝たせる代わりに各ファイルがどちらを表示するかを決めます。

レポートと履歴

  • Generate Full HTML Report — ディレクトリごとの自己完結型・複数ページレポート;単一ファイル向けのOpen Annotated Source。
  • カバレッジトレンド(▲/▼)付きのオプションのローカル実行履歴、および Compare Two History Runs と Compare with Last Run。
  • Show Worst-Covered Files / Functions と Copy Uncovered Lines(Markdown)。
  • Export Fucini JSON — 正規化されたモデル全体。
  • Export Coverage Report... — 同じ実行を CSV(ファイル単位・関数単位)、Markdown サマリー、LCOV トレースファイル、Cobertura XML、SARIF、自己完結型 SVG バッジとして。25 のリーダーとこれらのライターにより、拡張機能は形式間を変換します。JaCoCo や llvm-cov JSON を読み込んで、Codecov・Coveralls・SonarQube が読む LCOV や、Jenkins・GitLab・Azure DevOps が取り込む Cobertura XML を出力できます。
  • Generate Coverage Badge — ワークスペースに直接書き出される shields 風の SVG(badge.outputPath、既定は coverage-badge.svg)。README は ![coverage](coverage-badge.svg) で、ホストされたサービスなしに埋め込めます。badge.metric が行、分岐、MC/DC、複合スコアのどれかを選び、色は colorScale.* の段階に従い、badge.autoUpdate は読み込みのたびに書き直します。
Generated multi-page HTML coverage reportScreenshot pending — add assets/img/report.png (see SCREENSHOTS.md).
The report’s annotated page for src/calc.c: per-line hit counts, a fully covered function, an uncovered else branch, a 1/2 partial branch, an MC/DC expansion and a never-called functionScreenshot pending — add assets/img/annotated-source.png (see SCREENSHOTS.md).

Community と Pro、機能ごとに

2 つのリスティング、1 つのコードベース。Community は永久に無料の層であり、Pro のリスティングが 14 日間のトライアル後に落ち着く先でもあります。Pro とトライアルはすべてを上限なしで含みます。線引きは、無料層が常にあらゆる所見を見られるようにし、対価を払うのは利便性・証拠・規模だけになるように行われています — VS Code 内では Fucini Coverage: What Community Includes が同じ一覧を各上限に対する今日のカウント付きで表示します。

機能Community(無料)Pro とトライアル
全 25 形式、複数ファイルのマージ、パスの再マッピング✓✓
ガター、概要ルーラー、エクスプローラーバッジ、カバレッジビュー、CodeLens、ホバー✓✓
自動再読み込み付きの監視モード、Run Tests with Coverage✓✓
差分カバレッジ、履歴と傾向、前回実行以降のマーク✓✓
コマンドによるカバレッジの読み込み1 日 25 回(自動読み込みは数えません)無制限
実行の比較、Check Coverage Thresholds、Open HTML Report、Export Coverage Report、Export Fucini JSONそれぞれ週 5 回無制限
Annotated Source(その場)週 5 回無制限、加えて常設のサイドペインと Generate Full HTML Report
Export Coverage ReportCSV(ファイル別、関数別)さらに Markdown、LCOV、Cobertura XML、SARIF、SVG バッジ
カバレッジと一致しなくなったファイル報告され、淡色表示さらに、それを証明した行・関数・チェックサム
生存ミュータント行に印を付け、その数を表示加えて各ミュータントの変更内容
行を実行したテストテストの数加えてテスト名
CRAP実行の Max CRAP、すべての関数の CRAP加えて順位付きの Riskiest Methods リスト
Risk hotspots件数と最悪のスコア加えて順位付きの一覧、それぞれがその関数を開く
MC/DC カバレッジ、ガターバー、ホバー—✓
オブジェクトコードカバレッジの採点とゲート存在のみ通知✓
複数のレポートが計測するファイル最新のレポートファイルごとに 1 つを選ぶ、または結合する(agree / union)こともできます
テレメトリの要否不要 — 任意で、端末ごとに 1 回限り、Unlock Full Features により詳細な利用テレメトリと引き換えに右列のすべてが 30 日間使えます不要

1 週間は、その週を開始した最初の利用から 7 日間です。カバレッジを読み取るだけの操作は一切カウントされません。サブスクリプションにはまだ早いとお考えですか? 7 日間パスなら、右の列のすべてを 1 週間、一度のお支払いで利用でき、解約の手続きも不要です。

VS Code と Visual Studio を並べて

1 つの製品、2 つのエディター、1 つのリーダー:同じレポートから両方で桁まで同じ数値が得られます。Visual Studio 版 Coverage Studio は Visual Studio 2022 と 2026 — Community、Professional、Enterprise で動作し、2022 では Enterprise 限定の Visual Studio 自身のコード カバレッジは使いません。すべての有料プランに含まれ、両方のエディターがあるデバイスは 1 シートです。線より上はどちらにもあり、線より下は Visual Studio に対応するものがないもの、そしてこれから追加されるものです。

機能VS CodeVisual Studio
25 形式すべて、複数ファイルのマージ、パスの再マッピング、同じ fuciniCoverage.* 設定と .vscode/settings.json✓✓
ガター、概要ルーラー、ヒット数、関数ごとのレンズ、ホバー、Coverage ビュー、ステータス バーとそのカード✓✓
自動再読み込み付きウォッチ モード、Next Uncovered、Next Partly-Tested Decision、Markdown としてコピー✓✓
複合スコア、しきい値と COMPLIANT 判定、MC/DC、CRAP✓✓
Getting Started、18 言語対応ウォークスルーTools → Coverage Studio 配下のページ
Run Tests with Coverage、Run This Test with Coverage、保存のたびにカバレッジ、エディター自身の Test Coverage パネル✓✓、さらに Collect Coverage in Test Explorer… — Test Coverage パネルは VS Code の API です
エクスプローラーのバッジ✓—(ソリューション エクスプローラーはファイルを装飾できません)
Annotated Source、HTML レポート、エクスポート、Check Thresholds、Error List、履歴とトレンド、差分カバレッジ✓✓
どのテストが行を実行したか、ツリーとエディターからの除外、名前空間パースペクティブと検索ボックス、カバレッジ セッション、トレンド グラフ、CI ベースライン✓✓、さらに C++ プロジェクト向けの Run Native Project with Coverage
無料枠、トライアル、チェックアウト✓—(有料プラン。VS Code がアクティベート済みのマシンでキーが見つかります)

次に来るもの: このカバレッジのすべてを Azure DevOps で、無料の拡張機能で。 Azure DevOps がビルドに表示するカバレッジは、自身の形式が及ぶ範囲まで — 行と、パーセンテージとしての分岐 — に限られます。Fucini DevOps Studio は Coverage Studio が読み取るすべてを表示します: これら 25 の形式のすべてを、あらゆる言語について、MC/DC、条件、複合スコア、ゲートとともに、それを生成したパイプラインの Coverage タブとして。最初のリリースはニュースでお知らせします。

設定リファレンス

設定UI(Fucini Coverage を検索)または settings.json で構成します。

Download the complete settings reference — a commented settings.json holding every fuciniCoverage.* setting at the same default the packaged extension uses, ready to copy into your workspace or user settings. Regenerated from the extension on every release, so it cannot drift from what the VSIX ships.

フォルダーごと。で終わる行は、マルチルート ワークスペースでフォルダー単位の値を取ります。各フォルダーは自身の .vscode/settings.json または .code-workspace の項目で検出され、その中の ${workspaceFolder} はそのフォルダーを意味します。

ローカライズ

設定既定値説明
languageautoこの拡張機能自身のランタイム UI(ステータスバー、通知、ツールチップ、ライセンスおよびレポートの Webview)を、VS Code 全体の表示言語とは独立して特定の言語に固定します。auto は VS Code に従います。次のいずれか: auto, en, uk, nl, de, fr, es, hr, pl, it, pt, ru, tr, he, ja, zh, hi, ko, ar。コマンドパレットの項目や設定 UI のラベル・説明は変更しません。それらは VS Code が自身の表示言語から解決します。

検出と読み込み

設定既定値説明
coverageFile.defaultLocation""検出とファイル選択ダイアログの基準フォルダー。変数: ${workspaceFolder}、${workspaceFolderBasename}、${userHome}、${env:NAME}、${command:id}、${config:section.key}。フォルダーごと。
coverageFile.paths[]読み込んでマージするトレースファイル。基準フォルダーからの相対、絶対(上記と同じ変数)、または読み込みのたびに取得される http(s):// URL — URL 自体に拡張子がない場合は、URL フラグメントとして #lcov.info(または別のファイル名)を付けます。相対の * グロブは基準フォルダー以下を再帰的に検索します。絶対パスのエントリにもワイルドカードを含められ(${workspaceFolder}/build/coverage-merged/*.lcov.info、任意の深さには **)、その前のフォルダーの下で検索されます。フォルダーごと。
watch.enabledtrueトレースファイルが変更されたら — ワークスペース外の絶対パスの項目については、現れたら — カバレッジを再読み込みします。フォルダーごと。
watch.reloadAfterTasks[]終了時にカバレッジを再読み込みするタスク名(label、または npm: test のような source: name)。watch.enabled のオン・オフにかかわらず有効です。フォルダーごと。
remote.headers[]URL の取得のたびに送る Name: value ヘッダー。変数が展開されるため、Authorization: Bearer ${env:CI_TOKEN} でトークンを settings.json の外に置けます。フォルダーごと。
remote.refreshMinutes0URL の項目を N 分ごとに再取得します(条件付き GET。0 = 読み込み時のみ)。フォルダーごと。
baseline.report""読み込んだすべての実行を照らし合わせる相手のレポート — ビルド サーバーが公開する main ブランチのもの: URL(remote.headers で取得し、coverageFile.paths の URL と同じようにキャッシュされます)、またはダウンロードした成果物のパス(絶対パス、またはフォルダーからの相対パス)。ステータス バーのカードは、この実行がそれに対してどこに立っているかを示し、Compare with CI Baseline は動いたファイルを一覧します。空なら、ベースラインなし。フォルダーごと。

カラースケールとバッジ

coverage: 83%

設定既定値説明
colorScale.presetdefaultcolorblind は、カバレッジを色付けするすべての箇所で赤・琥珀・緑を朱色・オレンジ・青(Okabe–Ito)に置き換えます。下で変更した色が優先されます。
colorScale.lowColor#8b1a1aカバレッジ グラデーションの下端。
colorScale.midColor#b8860bグラデーションの中心色。
colorScale.highColor#228b22グラデーションの上端(100%)。
colorScale.lowThreshold80バッジが「低」から「中」に切り替わる割合。
colorScale.highThreshold90バッジが「中」から「高」に切り替わる割合(グラデーションの中心も兼ねます)。
heatmap.colors["#fff1a8", …, "#a63603"]ライトテーマでのヒートマップの 5 段階の濃淡。最も実行回数の少ない行から最も多い行まで。
heatmap.colorsDark["#6e5f22", …, "#ff6a00"]ダークテーマ用の同じ設定。明るいほど回数が多いことを表します。

複合スコア(加重調和平均)

設定既定値説明
whmWeights.lines1行・ステートメント カバレッジの重み。
whmWeights.functions1関数カバレッジの重み。
whmWeights.regions1.5リージョン カバレッジの重み(llvm-cov)。
whmWeights.branches2分岐カバレッジの重み。
whmWeights.mcdc4MC/DC カバレッジの重み。0 で除外します。
whmWeights.instantiations0.5C++ テンプレート実体化の重み(llvm-cov)。

閾値とコンプライアンス

設定既定値説明
threshold.profilestandardstandard は以下のデフォルト値を設定し、safety はミューテーションスコアを除くすべてのゲートを 100 にし、custom は設定済みの値をそのまま残します。既定のプロファイルでは安全性メトリクスはゲート対象外です。MC/DC を測定していないプロジェクトが、それを理由に不合格になることはありません。
threshold.statement80ステートメントの最小割合。0 でチェックを無効化します。
threshold.branch70分岐の最小割合。
threshold.mcdc0MC/DC の最小割合。
threshold.functions80関数の最小割合。
threshold.regions75リージョンの最小割合(llvm-cov)。
threshold.instantiations0インスタンス化の最小割合(llvm-cov)。C のみのプロジェクトはスキップされます。
threshold.conditions0条件の最小割合。
threshold.functionCalls0関数呼び出しの最小割合。レポートがそれを含む場合。
threshold.objectCode0オブジェクトコードの最小割合。レポートがそれを含む場合。
threshold.mutation0ミューテーションスコアの最小値。ミューテーションレポートが読み込まれている場合。
threshold.weighted75総合スコアの最小値。
compliance.modestrictstrict | whm | both | either.
compliance.diagnosticsfalse満たさなかったしきい値ごとに「問題」のエラー 1 件、トレースファイル上に。
threshold.unmeasuredFiles-1未計測ファイルの最大数(unmeasured.mode を list または count にする必要があります)。-1 はチェックせず、0 はテストが読み込まなかった最初のファイルで失敗します。
problems.perLineoffoff | uncovered | uncoveredAndPartial: 開いている各ドキュメントで、連続する未カバー行のブロックごとに Information 項目(エディター内の波線)を 1 つ、任意でさらに分岐のアームが一度も通らなかった行ごとに 1 つ。problems.enabled とは独立です。フォルダーごと。

差分、再マッピング、レポート

設定既定値説明
pathRemap[]順序付きの {from,to} パス書き換え。to では ${workspaceRoot} を使え、まずトレースファイル自身のフォルダー、次にワークスペースのほかのすべてのフォルダーを試します。読み込みで一致しないファイルが残ると、読み込み結果は一致しなかったパスから推定したルールとともに Apply Suggested Remap を提示します(パレットの Suggest Path Remap Rule でも)。クリックするまで何も書き込まれません。フォルダーごと。
ignore[]実行から丸ごと外すファイルのグロブパターン(vendor/**、**/*.generated.ts、build/**) — 読み込み時に外されるため、すべてのビュー、ゲート、エクスポートがそれら抜きで数えます。ワークスペース相対パスと絶対パスに照合され、/ を含まないパターンは .gitignore と同様に任意の深さの名前に一致します。フォルダーごと。
ignore.generatedtrue生成された .NET ファイル — *.Designer.cs、*.g.cs、*.g.i.cs、*.generated.cs、*.razor.g.cs、*.AssemblyInfo.cs、GlobalUsings.g.cs、Migrations/**、obj/** — を、ignore が適用される前にすべての合計、ページ、エクスポートから除外します。マイグレーションをテストするプロジェクトではオフにしてください。フォルダーごと。
ignore.namespaces[].NET のソースで、すべての合計とすべてのページから除外する名前空間: 名前空間宣言がこのいずれかに一致するファイルは数えられません。* をワイルドカードとする接頭辞 — Acme.Generated、Acme.*.Migrations、*Tests。フォルダーごと。
ignore.attributes["ExcludeFromCodeCoverage"].NET のクラス、メソッド、プロパティを集計から外す属性で、ソースから読み取られます: このいずれかの直下にあるメンバーは、どのツールがレポートを書いたかにかかわらず、LCOV_EXCL_START/STOP が除外するのと同じように除外されます。名前は Attribute 接尾辞の有無、名前空間の有無を問いません。GeneratedCode、Obsolete、あるいは独自のものを追加してください。フォルダーごと。
testRun.perTestfalseRun Tests with Coverage が dotnet test のレシピをテスト クラスごとに 1 つずつ実行し、各レポートにそのクラスのタグを付けます。これにより、ホバー、CodeLens、Show Tests That Ran This Line が、どのテストがその行を実行したかを答えられます — 遅くなり、.NET 専用です。.NET の Cobertura レポートは単独ではそれを語れないためです。フォルダーごと。
testRun.onSavefalseソースを保存すると、保存の少し後に、そのソースをカバーするテストがカバレッジ付きで実行されます: .NET ソリューションでは、保存したファイルのプロジェクトを参照するテスト プロジェクトだけを、それぞれ 1 回の dotnet test で。それ以外のランナーはレシピ全体を実行します。連続した保存は 1 回の実行にまとめられ、進行中の実行は中断されません。フォルダーごと。
testRun.skipWhenTestsFailfalseRun Tests with Coverage は、ランナーが失敗で終了したときにカバレッジを画面にそのまま残し、Output ペインでそのことを伝えます — 赤い実行が緑のファイルを赤く塗ることはありません。フォルダーごと。
unmeasured.modeoffoff | list | count: 実行と同じ種類でありながらどのテストも読み込まなかったワークスペースのファイルをどう扱うか(未計測と未カバーを参照)。list は Coverage ビューと読み込み結果でそれらを挙げ、count はさらに各ファイルをそのコード行ぶんの未カバーファイルとして採点します。変更すると再読み込みされます。
unmeasured.exclude["**/*.h", "**/*.hpp", "**/*.hh", "**/*.inl", "**/*.d.ts"]未計測と呼ばれることのないファイル。ignore と同じグロブ構文で、既定ではヘッダーのみ・宣言のみのファイルです。フォルダーごと。
hotspots.crapThreshold30この CRAP スコア以上の関数はリスク ホットスポットで、Coverage ビューのツリーの下に最悪のものから順に一覧されます — 30 はこの指標の考案者が提案した値です。循環的複雑度を含むレポートだけにホットスポットがあります。フォルダーごと。
hotspots.complexityThreshold0この複雑度以上の関数も、そのカバレッジにかかわらずホットスポットです。0 でオフになります。フォルダーごと。
gitDiff.enabledfalseベース参照との差分行にカバレッジを限定します。フォルダーごと。
gitDiff.baseReforigin/master差分カバレッジ用の Git ベース参照。フォルダーごと。
externalHtmlReport.dir""Annotated Source 用に、生成済みの llvm-cov show HTML ディレクトリを読み込みます。フォルダーごと。
htmlReport.outputDir""Generate Full HTML Report の出力ディレクトリ。フォルダーごと。
badge.outputPathcoverage-badge.svgGenerate Coverage Badge が SVG を書き出す場所 — ワークスペース フォルダーからの相対または絶対で、変数は coverageFile.defaultLocation と同じです。親フォルダーは作成されます。フォルダーごと。
badge.metriclineslines | branches | mcdc | weighted: バッジに載せる実行全体の数値(weighted はステータスバーの複合スコア)。データがなければ灰色の n/a になります。フォルダーごと。
badge.autoUpdatefalse読み込みが成功するたびに、黙ってバッジを書き直します([FUCINI_BADGE] として記録)。フォルダーごと。

表示と解析

設定既定値説明
mcdcGutter.enabledfalse色付きの MC/DC マージン。
statusBar.enabledtrue実行全体およびファイルごとのステータスバー項目を表示します。
statusBar.showLaunchertrue常時利用できるクイックメニュー ランチャー。
statusBar.showModeToggletrueガターモードを表示するステータスバーのボタン。クリックするたびに次のモードへ 1 つ進みます。
codeLens.enabledtrue関数ごとのカバレッジ CodeLens。
deadCode.enabledtrueカバレッジがゼロの関数を警告します。
staleWarning.enabledtrue内容が実行結果と一致しなくなったファイルをマークします。
explorerBadges.enabledfalseエクスプローラーのファイル横のカバレッジバッジとホバー。
coverageFile.rememberPickstrue選んだファイルをすべて coverageFile.paths に書き込みます。
coverageFile.sources[]複数のレポートが同じファイルを計測するとき、そのファイルの数値をどの読み込み済みレポートから取るか:順序付きの { "files": glob, "report": glob } ルールで、最初にマッチしたものが決定します。"combine": "union"(いずれかのレポートが実行した行をカバー済みとする)または "agree"(すべてのレポートが実行した行のみ。食い違いは青緑色)を指定すると、マッチしたレポートが結合されます。有料プラン。フォルダーごと。
coverageFile.mergeStrategynewestどのルールも決めないファイルについて:newest(最後に書き込まれたレポートが勝つ)または order(時刻にかかわらず coverageFile.paths で後にあるエントリが勝つ)。フォルダーごと。
sinceLastRun.enabledtrue前回の実行以降にカバレッジが変わった行のガターマーク。
dirtyMarks.enabledtrue実行結果の読み込み後に編集された行の灰色のガター点。
editorGutter.modeoffoff | uncovered | coverage | heatmap: 上記の所見以外は何も表示しない、未カバー(および部分的にカバーされた)行だけにバーを表示する、それに加えてカバーされたすべての行に緑のバーを表示する、またはそれに加えて実行されたすべての行にヒット数に応じた暖色を付ける。フォルダーごと。
lineHighlightoffoff/uncovered/coverage/heatmap:ガターが示す内容に合わせて、行そのものの背後に半透明の色を敷きます。独立した設定なので、ガターは何も描かずに未実行行だけ色付ける、あるいはその逆ができます。フォルダーごと。
overviewRulerfollowfollow/uncovered/off:未実行の行をスクロールバーの概要ルーラーに表示するかどうか。uncovered はガターがオフでも線を引くので、コードの横には何も出さずスクロールバーだけにファイルのギャップの地図が出ます。off はバーを残して線をやめます。フォルダーごと。
hitCounts.inlinefalse文が始まるすべての行の後ろに ×N。×0 も含みます。フォルダーごと。
testCoverage.publishtrue読み込まれたすべての実行を VS Code 自身の Test Coverage ビュー(Test Explorer パネル、Explorer のパーセンテージ、Show Inline Coverage)に公開します。オフ: Test Explorer に Fucini Coverage の項目は現れません。Show in Test Coverage View は求めに応じて引き続き公開します。
coverageView.perspectivefoldersCoverage ビューが表示するツリー: ワークスペースのフォルダーとファイルか、あるいは — クラス名を含む .NET レポート(Cobertura、Coverlet、OpenCover)では — 名前空間、クラス、メソッドで、それぞれに独自の数値が付きます。ビュー内のドロップダウンがこれを書き込みます。実行がクラス名を含むときにだけ提供されます。
coverageView.mergedMarkstrue複数のトレースファイルを読み込んだとき:古いレポートの数値を上書きしたすべてのファイルのトレースファイルバッジに枠線を付け、トレースファイル行のクリックでそれが計測したファイルを強調表示できるようにします。オフ:枠線なしのバッジ、強調表示なし。トレースファイル行は引き続き上書きされた件数を表示します。
excludeCommentstrueコメント行・空行 & LCOV_EXCL_* 行、および C、C++、Objective-C、CUDA、C# のプリプロセッサディレクティブを除外します。
excluded.includeInTotalsfalse除外した行を合計に含めます。

履歴

設定既定値説明
history.enabledfalseトレンドと比較のために実行結果をローカルに保存します。
history.retention20保存する実行結果の最大数。

ステータスバーのクイックアクション

最後の 2 つを除きすべてデフォルトで false;有効にすると対応するアクションがクイックメニューに追加されます:quickActions.compareWithLastRun、openAnnotatedSource、openAnnotatedSourceToSide、toggleAnnotatedSource、toggleWatch、worstCoveredFiles, worstCoveredFolders、worstCoveredFunctions、nextUncovered、previousUncovered、checkThresholds、copyUncoveredLines、compareHistoryRuns、exportJson、exportReport、generateBadge、showTestCoverage、chooseGutterMode、toggleInlineHitCounts。

テレメトリ

設定既定値説明
telemetry.enabledfalse使用状況テレメトリ、既定でオフ。Community ティアでは、Unlock Full Features が、これと引き換えに MC/DC を含むすべての Pro 機能を 30 日間、端末ごとに 1 回限りで解放します。有料ライセンスは影響を受けません。送信される内容はプライバシーポリシーをご覧ください。日次サマリーと削除通知は VS Code 自身の telemetry.telemetryLevel にも従います。インストール通知といくつかの小さなイベントは従いません。

アップデート

設定既定値説明
update.checkForUpdatestruefucini.software と VS Code Marketplace の両方を定期的に確認し、新しい方のリリースのインストールを提案します。

ライセンス

設定既定値説明
license.key""評価版プレリリース用のアクティベーションキー(FCK1.… 形式の文字列)。このマシン/ユーザーに紐づき、有効期限や機能ごとの制限を持つ場合があります。評価とアクティベーションを参照してください。