기능 및 설정

제공하는 모든 기능과 조정할 수 있는 모든 것

전체 기능 세트와 완전한 설정 참조 — 모든 설정과 그 기본값을 포함한 완전한 소개.

VSIX 다운로드

평가 릴리스. 아래의 모든 기능은 무료 14일 체험 기간 동안 사용할 수 있습니다. 체험 기간이 끝나면 요청 시 라이선스 키를 받을 수 있으며, 자동으로 발급됩니다. 키는 사용자별로 개별 기능을 켜거나 제한할 수 있습니다. 라이선스 요청 →

AI가 테스트를 작성했다면

생성된 테스트 스위트에 맞선 커버리지

개요가 일반론을 폅니다. 여기서는 그것을 기능 목록 자체에 맞대어 봅니다. 생성된 테스트 스위트는 특유의 모양으로 실패하기 때문입니다 — 모든 줄이 닿았고, 분기의 절반은 한 번도 타지 않았으며, 테스트 제목에 이름만 오르고 실제로는 호출되지 않는 함수가 몇 개 있습니다 — 그리고 아래 다섯 가지가 바로 그 모양을 드러냅니다.

  • 분기 및 MC/DC 커버리지는 각 갈래와 각 판정에 대한 호버와 함께 줄이 실행되었다와 판정이 실제로 시험되었다를 갈라놓습니다. 해피 패스만 걷는 스위트는 줄에서 100%에 가깝고 분기에서 50%에 가깝게 나오며, 바로 그 간극이 발견입니다. 테스트가 전부 초록이어도 거기엔 아무것도 드러나지 않습니다.
  • 종합 점수는 조화 평균이라서 강한 지표가 약한 지표를 가릴 수 없습니다 — 생성된 스위트에 적용해야 할 산술이 바로 이것입니다. 줄 수치와 분기 수치를 단순 평균 내면 정작 볼 만한 하나의 수치가 묻힙니다.
  • 데드 코드 경고는 측정 가능한 줄이 있으면서 커버리지가 0인 함수마다 Problems 패널에 항목을 세웁니다. 테스트 제목에 함수 이름만 올리고 한 번도 닿지 않는 스위트는 다른 어디에서도 실패하지 않습니다.
  • 디프 커버리지는 git 기준 ref에 대비해 위의 모든 것을 방금 바뀐 줄로 좁힙니다 — 저장소의 평생 평균이 아니라 오늘 오후에 당신이 받아들인 코드로. 평생 평균으로 보면 크고 오래된 스위트는 얼마든지 건강해 보입니다.
  • Copy Uncovered Lines는 한 번도 실행되지 않은 것만 정확히 Markdown으로 내보냅니다 — 애초에 그 스위트를 작성한 어시스턴트에게 그대로 다시 붙여넣을 수 있는 형태로.

이 중 어느 것도 테스트를 읽고 그 좋고 나쁨을 판단하지 않으며, 여기 쓰인 어떤 것도 그런 주장으로 받아들여져서는 안 됩니다. 단언문이 하나도 없는 테스트라도 자신이 닿은 모든 줄을 커버합니다. 이것들이 재는 것은 리뷰어가 머릿속에 담아 둘 수 없는 부분 — 어떤 코드가 한 번도 실행되지 않았는가입니다.

이 확장 프로그램만의 기능

행 커버리지는 100%라고 말합니다. 하지만 바이너리의 312바이트는 한 번도 실행되지 않았습니다.

여기의 다른 모든 지표는 소스에서 측정됩니다. 코드를 계측하고, 계측된 빌드를 실행하고, 무엇이 발동했는지 셉니다. 목적 코드 커버리지는 소스 기반 도구가 절대 닿을 수 없는 것을 측정합니다 — 빌드된 바이너리가 실제로 얼마나 실행되었는지를, 명령 스트림을 관찰해 명령 바이트 단위로 잽니다. 컴파일러는 소스의 어느 줄로도 설명되지 않는 코드를 만들어 냅니다. 배열 경계 검사, switch 점프 테이블, 레지스터 스필, 나눗셈이나 부동소수점을 위한 런타임 보조 루틴 등입니다. 이 중 어느 것도 소스에 나타나지 않으므로, 이 확장이 읽는 다른 어떤 지표를 포함해서라도 소스 기반 도구는 그것이 실행되었는지 말할 수 없습니다. 또한 손으로 쓴 어셈블리는 결코 계측되지 않으므로, 이것이 어셈블리를 다루는가?라는 물음에 답할 수 있는 유일한 지표이기도 합니다.

DO-178C는 이를 명시적으로 지정합니다. 레벨 A에서는 MC/DC에 더해 이것이 요구됩니다. 이를 읽는 다른 VS Code 확장은 없습니다. 임베디드 타깃에서 이를 얻는 방법 →

기능

핵심 기능

  • 측정된 모든 파일의 Coverage 보기, 개요 눈금자와 Annotated Source; 에디터 자체 거터에는 기본적으로 표시할 가치가 있는 것만 — MC/DC 막대, 이전 실행 이후 삼각형, 편집된 줄의 점 — 그리고 설정 하나로 커버되지 않은 줄만의 막대나 실행 횟수 히트맵.
  • 트레이스 파일이 제공하는 내용에 따른 라인별 구문, 분기, 함수, 리전, 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 항목)으로 검색되고, 그 추적 파일들은 하나의 실행으로 병합되며, Coverage 보기는 파일을 폴더별로 묶고, 폴더가 추가되거나 제거되면 커버리지가 저절로 다시 로드됩니다.
  • 다시 로드 트리거 둘 더 — 작업 영역 밖의 절대 coverageFile.paths 항목은 폴링되므로 그곳에 나타난 파일이 로드되고, watch.reloadAfterTasks는 watch 모드가 켜져 있든 아니든 끝나면 커버리지를 다시 로드할 작업(npm: test)의 이름을 지정합니다.
  • 취소할 수 있는 진행률 — 추적 파일이 열 개 이상이거나 8 MB 이상인 로드와 모든 Generate Full HTML Report는 Cancel 버튼이 있는 진행률 알림 아래에서 실행되며, 취소하면 이전 실행이 로드된 채로 남습니다.
  • 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을 제공합니다. 클릭 없이는 아무것도 기록되지 않습니다.
  • 무시 glob — 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 호버 — 분기별 통과/미통과 횟수와 결정별 조건/벡터 분석; 선택적인 색상 MC/DC 여백 거터.
  • 데드 코드 경고 — 측정 가능한 라인이 있고 커버리지가 0인 함수에 대한 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 진단을 두고, 선택적으로 분기 갈래가 한 번도 타지 않은 모든 줄에도 둡니다; 항목은 편집에 따라 자기 줄을 따라갑니다.
  • 줄 색상과 스크롤 막대 지도 — lineHighlight는 여백의 표시 대신(또는 그와 함께) 줄 자체 뒤에 반투명한 색을 깔고, overviewRuler는 스크롤 막대의 줄무늬를 스스로 정합니다. 여백을 끄면 파일의 빈틈 지도만 남고 코드 옆에는 아무것도 없습니다.
  • 이 줄을 커버한 추적 파일은 무엇인가 — 여러 보고서를 병합했을 때, 실행 횟수 호버가 그 줄을 커버한 보고서를 모두 이름으로 알려 주고(lcov TN:의 스위트 이름 포함), Coverage 뷰에서 추적 파일 행을 클릭하면 그 파일이 기여한 줄이 강조됩니다.
  • 빨강, 호박색, 초록 — editorGutter.mode와 lineHighlight의 coverage 모드는 측정된 모든 줄을 색상 스케일의 색으로 칠합니다; 상태 표시줄의 모드 버튼과 Alt+G로 다음 모드로 넘어갑니다.
  • 나만의 색상, 미리 보기와 함께 — 색상 스케일과 히트맵의 음영(heatmap.colors, heatmap.colorsDark)은 설정이며, 설정 페이지는 색을 고르는 즉시 밝은 에디터와 어두운 에디터에서 미리 보여 줍니다.
  • 파일이 어느 보고서에서 오는가 — 두 보고서가 같은 코드를 측정할 때, 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 배지로. 스물다섯 개의 리더와 이 작성기들 덕분에 확장은 형식 사이를 변환합니다: 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, 기능별 비교

두 개의 목록, 하나의 코드베이스. Community는 영구 무료 등급이며 Pro 목록이 14일 평가판 이후 정착하는 곳이기도 합니다. Pro와 평가판은 모든 것을 제한 없이 포함합니다. 경계는 무료 등급이 언제나 모든 발견을 볼 수 있고 편의, 증거, 규모에 대해서만 비용을 내도록 그어져 있습니다 — VS Code 안에서는 Fucini Coverage: What Community Includes가 같은 목록을 각 한도의 오늘 사용량과 함께 보여 줍니다.

기능Community(무료)Pro와 평가판
25개 형식 전부, 다중 파일 병합, 경로 재매핑✓✓
거터, 개요 눈금자, 탐색기 배지, 커버리지 보기, CodeLens, 호버✓✓
자동 다시 로드가 있는 감시 모드, Run Tests with Coverage✓✓
차이 커버리지, 기록과 추세, 이전 실행 이후 표시✓✓
명령으로 커버리지 로드하루 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 커버리지, 거터 막대와 호버—✓
오브젝트 코드 커버리지 점수와 게이트존재만 알림✓
여러 보고서가 측정하는 파일가장 최신 보고서파일별로 하나를 선택하거나 결합할 수도 있음(agree / union)
텔레메트리 필요아니요 — 선택적으로, 컴퓨터당 한 번, Unlock Full Features가 자세한 사용 텔레메트리와 오른쪽 열의 모든 것 30일 이용을 맞바꿉니다아니요

일주일은 그 주를 시작한 첫 사용부터 7일 동안이며, 커버리지를 읽기만 하는 기능은 아무것도 집계되지 않습니다. 아직 구독할 준비가 되지 않으셨나요? 7일 이용권은 오른쪽 열의 모든 기능을 일주일 동안 제공하며, 한 번만 결제하면 되고 해지할 것도 없습니다.

VS Code와 Visual Studio 나란히 비교

하나의 제품, 두 편집기, 하나의 리더: 같은 보고서가 두 곳에서 자릿수까지 같은 숫자를 냅니다. Visual Studio용 Coverage Studio는 Visual Studio 2022와 2026 — Community, Professional, Enterprise에서 실행되며, 2022에서 Enterprise 전용인 Visual Studio 자체 코드 커버리지는 사용하지 않습니다. 모든 유료 플랜에 포함되고, 두 편집기가 있는 기기 한 대는 좌석 하나입니다. 선 위의 모든 것은 양쪽에 있고, 선 아래는 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, 이력과 추세, diff 커버리지✓✓
어떤 테스트가 한 줄을 실행했는지, 트리와 편집기에서 제외, 네임스페이스 관점과 검색 상자, 커버리지 세션, 추세 차트, 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(상태 표시줄, 알림, 툴팁, 라이선스 및 보고서 웹뷰)를 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 자체에 확장자가 없으면 #lcov.info(또는 다른 파일 이름)를 URL 조각으로 붙이세요. 상대 * glob은 기준 폴더 아래를 재귀적으로 검색하고, 절대 항목에도 와일드카드를 넣을 수 있으며(${workspaceFolder}/build/coverage-merged/*.lcov.info, 어느 깊이든 뜻하는 **) 그 앞의 폴더들 아래에서 검색됩니다. 폴더별.
watch.enabledtrue추적 파일이 변경되면 — 또는 작업 영역 밖의 절대 항목이라면 나타나면 — 커버리지를 다시 불러옵니다. 폴더별.
watch.reloadAfterTasks[]watch.enabled가 켜져 있든 아니든, 끝나면 커버리지를 다시 로드할 작업 이름(label, 또는 npm: test 같은 source: name). 폴더별.
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"]밝은 테마에서 히트맵의 다섯 가지 음영, 가장 적게 실행된 줄부터 가장 많이 실행된 줄까지.
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.mcdc0최소 MC/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충족하지 못한 임계값마다 문제 패널의 오류 하나, 추적 파일 위에.
threshold.unmeasuredFiles-1측정되지 않은 파일의 최대 수(unmeasured.mode가 list 또는 count여야 함). -1은 검사하지 않고, 0은 어떤 테스트도 로드하지 않은 첫 파일에서 실패합니다.
problems.perLineoffoff | uncovered | uncoveredAndPartial: 열린 각 문서에서 연속된 커버되지 않은 줄 블록마다 Information 항목(에디터의 물결선) 하나, 선택적으로 분기 갈래가 한 번도 타지 않은 줄마다 하나 더. problems.enabled와 독립적입니다. 폴더별.

차이, 재매핑 및 보고서

설정기본값기능
pathRemap[]순서가 있는 {from,to} 경로 재작성. to는 ${workspaceRoot}를 쓸 수 있으며, 이는 추적 파일이 있는 폴더를 먼저 시도한 뒤 작업 영역의 다른 모든 폴더를 시도합니다. 로드 후 맞지 않는 파일이 남으면 로드 결과가 맞지 않는 경로에서 추론한 규칙과 함께 Apply Suggested Remap을 제공합니다(팔레트에서는 Suggest Path Remap Rule). 클릭하기 전까지 아무것도 기록되지 않습니다. 폴더별.
ignore[]실행에서 뺄 파일 전체의 glob 패턴(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 레시피를 테스트 클래스 하나씩 실행하고 각 보고서에 그 클래스를 태그로 붙여, 마우스를 올렸을 때의 설명, CodeLens, Show Tests That Ran This Line이 어떤 테스트가 줄을 실행했는지 말할 수 있게 합니다 — 더 느리고 .NET에만 해당하는데, .NET의 Cobertura 보고서는 스스로 그것을 말하지 못하기 때문입니다. 폴더별.
testRun.onSavefalse소스를 저장하면 저장 직후에 그 소스를 커버하는 테스트가 커버리지와 함께 실행됩니다: .NET 솔루션에서는 저장한 파일의 프로젝트를 참조하는 테스트 프로젝트만 각각 한 번의 dotnet test로, 다른 러너는 레시피 전체를. 연속된 저장은 한 번의 실행이 되고, 이미 진행 중인 실행은 중단되지 않습니다. 폴더별.
testRun.skipWhenTestsFailfalseRun Tests with Coverage는 러너가 실패로 종료되면 커버리지를 화면에 있던 그대로 두고 Output 창에 그렇게 알립니다 — 실패한 실행이 초록색 파일을 빨간색으로 칠하지 않습니다. 폴더별.
unmeasured.modeoffoff | list | count: 어떤 테스트도 로드하지 않은, 실행과 같은 종류의 작업 영역 파일을 어떻게 다룰지(측정되지 않음 대 커버되지 않음 참조). list는 Coverage 보기와 로드 결과에서 이름을 밝히고, count는 각각을 코드 줄 수만큼 커버되지 않은 파일로 점수화하기도 합니다. 바꾸면 다시 로드됩니다.
unmeasured.exclude["**/*.h", "**/*.hpp", "**/*.hh", "**/*.inl", "**/*.d.ts"]측정되지 않음으로 결코 부르지 않는 파일. ignore의 glob 문법을 쓰며, 기본값은 헤더 전용 및 선언 전용 파일입니다. 폴더별.
hotspots.crapThreshold30이 CRAP 점수 이상인 함수는 risk hotspot으로, Coverage 보기의 트리 아래에 가장 나쁜 것부터 나열됩니다 — 30은 이 지표의 저자들이 제안한 수치입니다. 순환 복잡도를 담은 보고서에만 있습니다. 폴더별.
hotspots.complexityThreshold0이 정도 이상으로 복잡한 함수도 커버리지와 관계없이 hotspot입니다. 0이면 꺼집니다. 폴더별.
gitDiff.enabledfalse기준 ref 대비 변경된 행으로 커버리지를 제한합니다. 폴더별.
gitDiff.baseReforigin/master차이 커버리지를 위한 Git 기준 ref. 폴더별.
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거터 모드 이름을 보여 주는 상태 표시줄 버튼; 클릭하면 다음 모드로 한 단계 넘어갑니다.
codeLens.enabledtrue함수별 커버리지 CodeLens.
deadCode.enabledtrue커버리지가 0인 함수를 경고합니다.
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보관할 최대 실행 수.

상태 표시줄 빠른 작업

마지막 둘을 제외하고 모두 기본값은 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일 동안, 컴퓨터당 한 번 엽니다. 유료 라이선스는 영향을 받지 않습니다. 무엇이 전송되는지는 개인정보 처리방침을 참조하세요. 일간 요약과 제거 알림은 VS Code 자체의 telemetry.telemetryLevel에도 따릅니다. 설치 알림과 몇 가지 작은 이벤트는 따르지 않습니다.

업데이트

설정기본값기능
update.checkForUpdatestruefucini.software와 VS Code 마켓플레이스를 주기적으로 확인해 더 새로운 릴리스를 설치하도록 제안합니다.

라이선스

설정기본값기능
license.key""평가용 사전 릴리스의 활성화 키(FCK1.… 형식 문자열)입니다. 이 컴퓨터/사용자에 연결되며 만료일과 기능별 제한이 있을 수 있습니다. 평가 및 활성화를 참조하세요.