VS CODE와 VISUAL STUDIO의 네이티브 커버리지

편집기 안에 살아 있는 커버리지

lcov, llvm-cov JSON, Cobertura, JaCoCo, Istanbul, SimpleCov, Clover, OpenCover, coverage.py, gcov, Go, Coveralls, SonarQube, GNATcoverage, Bullseye, Visual Studio, Xcode, VectorCAST, Testwell CTC++, TRACE32, EMMA, UCIS/UCDB, NCover, dotCover 추적 파일을 읽어 하나의 정규 모델로 정규화하고, 실행 결과를 결정론적으로 병합해, 그 결과를 편집기 여백에서 바로 확인하세요 — VS Code에서, 그리고 모든 에디션의 Visual Studio 2022와 2026에서. 편집기를 떠나 따로 열어야 할 뷰어는 없습니다.

VSIX 다운로드 사용자 가이드 읽기 기능 살펴보기

무료로 시작합니다. Fucini Coverage Studio는 14일 체험 기간 동안 모든 기능이 잠금 해제된 상태로 무료로 실행됩니다. 그 이후에도 사용을 막지 않고 무료 Community 등급으로 전환됩니다 — MC/DC를 제외한 모든 기능을 쓸 수 있으며, 그중 몇 가지에는 넉넉한 월간 한도가 적용됩니다. 제한 없는 기능 세트가 필요하면 언제든 업그레이드하거나, 상세한 사용 텔레메트리를 공유해 모든 기능을 무료로 잠금 해제할 수 있습니다. 요금제 보기 →

다음 예정: 이 모든 커버리지를 Azure DevOps에서, 무료 확장으로. Azure DevOps는 빌드의 커버리지를 자체 형식이 담는 만큼만 보여 줍니다 — 줄, 그리고 백분율로 된 분기. Fucini DevOps Studio는 Coverage Studio가 읽는 것 전부를 보여 줄 것입니다: 이 25가지 형식 모두를, 모든 언어에 대해, MC/DC, 조건, 종합 점수, 게이트와 함께, 그것을 만든 파이프라인의 Coverage 탭으로. 첫 릴리스 소식은 뉴스를 확인하세요.

Covered/uncovered gutters with the Test Coverage panel openScreenshot pending — add assets/img/hero.png (see SCREENSHOTS.md).

AI가 테스트를 작성했다면

생성된 테스트 묶음은 꼼꼼해 보입니다. 커버리지는 실제로 그런지 알려 줍니다.

언어 모델은 몇 초 만에 테스트 묶음을 써 주고, 읽기에도 그럴듯합니다. 하지만 그 테스트가 정말 중요한 곳에 닿는지는 알려 주지 못합니다. 줄 커버리지도 마찬가지입니다. 단언문이 하나도 없는 테스트라도 지나간 줄은 모두 켜지기 때문입니다.

◆ 줄이 아니라 분기

MC/DC와 분기 커버리지는 줄에 도달했는지가 아니라 각 분기가 실제로 실행되었는지를 보여 줍니다. 생성된 테스트는 대개 정상 경로만 지나가고 모든 if의 반대편은 건드리지 않습니다. 줄 100%, 분기 50%로 나타나는 그 간격이 바로 발견입니다.

◆ 한 번도 호출되지 않은 함수

데드 코드 탐지는 어떤 테스트도 닿지 않은 함수를 나열합니다. 생성된 묶음은 테스트 제목에서 그 이름을 부르지만 실제로는 도달하지 않으며, 전부 초록인 실행에서는 보이지 않습니다.

◆ 눈앞의 변경과 연결

디프 커버리지는 git 기준선 대비 바뀐 부분만 측정합니다. 그래서 "테스트가 통과한다"가 "방금 받아들인 코드가 테스트되었다"로 바뀝니다. 사람이 썼든 어시스턴트가 썼든 똑같이 작동합니다.

이 가운데 무엇도 테스트가 좋다는 것을 증명하지는 않습니다. 어떤 것도 증명할 수 없습니다. 다만 무엇이 한 번도 실행되지 않았는지를 줄 단위로 정확히 알려 줍니다. 리뷰어가 머릿속에 담아 둘 수 없고 어시스턴트가 먼저 말해 주지 않는 부분입니다. Vitest, Jest, nyc를 통해 TypeScript와 JavaScript를, 그리고 해당 툴체인이 이미 만들어 내는 트레이스 파일을 통해 C, C++, Java, Ruby를 지원합니다.

차별점

하나의 모델, 모든 포맷, 커스텀 뷰어 불필요

◆ 25가지 입력 포맷

LCOV, llvm-cov JSON, Cobertura, JaCoCo, Istanbul/nyc, SimpleCov, Clover, OpenCover, coverage.py, gcov JSON 및 일반 텍스트, Go, Coveralls, SonarQube, GNATcoverage, Bullseye, Visual Studio, Xcode, VectorCAST, Testwell CTC++, TRACE32, EMMA, UCIS/UCDB, NCover, dotCover — 자동으로 감지되며 기록된 출처와 함께 결정론적으로 병합됩니다.

◆ 네이티브 UI 출력

라인, 브랜치, 함수 거터, 개요 눈금자, 탐색기 배지, 그리고 Covered Files 뷰.

◆ MC/DC 및 리전

llvm-cov 기반 Modified Condition/Decision Coverage, 리전 및 C++ 인스턴스화 커버리지를 호버 시 결정별 세부 정보와 함께 제공합니다.

◆ 안전 가중치 점수

모든 지표에 걸친 단일 가중 조화 평균으로, 가중치는 IEC 61508 / ISO 26262 / DO-178C 등급에 맞춰져 있습니다.

◆ 컴플라이언스 게이팅

지표별 임계값과 strict, whm, both 또는 either 모드에 따른 COMPLIANT / NON-COMPLIANT 판정.

◆ 차이 커버리지

장식을 git 기준 참조 대비 변경된 라인으로만 제한합니다 — PR이 실제로 무엇을 커버했고 커버하지 않았는지 정확히 검토하는 데 이상적입니다.

30초 만에 시작하기

  1. 확장을 설치하고 프로젝트를 엽니다.
  2. 테스트 실행 — 명령 팔레트 → Fucini Coverage: Run Tests with Coverage. vitest, jest, pytest, go, cargo, dotnet, maven, gradle, phpunit, ctest를 인식해 커버리지를 켠 채로 테스트를 실행하고, 기록된 결과를 불러옵니다. 이미 트레이스 파일이 있나요? Fucini Coverage: Pick Coverage File이 그 파일을 불러오고 기억합니다.
  3. 소스 파일 열기 — 거터는 실행된 줄을, 상태 표시줄은 파일의 비율을, 호버는 각 줄의 실행 횟수를 보여 주며, 실행 결과는 Coverage 뷰와 VS Code 자체의 Test Coverage 패널에 표시됩니다. 그 뒤로는 트레이스 파일이 바뀔 때마다 알아서 다시 불러옵니다.

VS Code 1.88 이상, 또는 Visual Studio 2022나 2026이 필요합니다 — Community, Professional, Enterprise 중 하나 — 그리고 프로젝트가 이미 만들어 내는 커버리지 추적 파일. Visual Studio 2022에서 기본 커버리지는 Enterprise 전용이지만, Visual Studio용 Coverage Studio는 빌드가 이미 써낸 파일로 Community와 Professional에서도 보여줍니다.

다른 도구와의 비교

VS Code 자체와 여러 무료 확장도 커버리지를 보여 줍니다. 아래는 2026년 9월 기준으로 각 도구의 자체 문서가 설명하는 기능입니다. README에 언급이 없는 항목은 추측하지 않고 그대로 표시했습니다.

Fucini Coverage StudioVS Code 기본 기능Coverage GuttersCode Coverage (markis)Gcov Viewer
커버리지의 출처25가지 트레이스 파일 형식, 그리고 PIT·Stryker 뮤테이션 보고서커버리지를 보고하는 테스트 확장lcov 및 XML 파일lcov 파일GCC의 .gcda 파일(gcov 사용)
편집기의 미커버 줄✓✓✓✓, Problems에도 표시✓
분기 커버리지(분기별)✓테스트 확장이 보고하는 경우설명 없음설명 없음설명 없음
MC/DC✓ (Pro)—설명 없음설명 없음설명 없음
여러 트레이스 파일 병합과 각 줄을 어느 파일이 커버했는지✓—여러 파일 지원설명 없음설명 없음
트레이스 파일이 바뀌면 다시 불러오기✓마지막 테스트 실행을 표시✓설명 없음설명 없음
변경분 커버리지, 임계값, 기록✓diff 편집기에 커버리지 표시설명 없음설명 없음설명 없음
HTML 보고서생성, 자체 호스팅—기존 보고서 미리보기설명 없음설명 없음
AI 에이전트를 위한 커버리지: 언어 모델 도구와 MCP 서버✓설명 없음설명 없음설명 없음설명 없음
한 줄을 실행한 테스트와, 변경 사항의 영향을 받는 테스트✓테스트 확장이 보고하는 경우 테스트별 커버리지설명 없음설명 없음설명 없음
편집기에서 보는 뮤테이션 테스트 결과✓ (PIT, Stryker)설명 없음설명 없음설명 없음설명 없음
새 코드에 대한 게이트✓설명 없음설명 없음설명 없음설명 없음
Visual Studio와 명령줄에서도 같은 숫자✓—설명 없음설명 없음설명 없음

VS Code 자체 뷰와 둘 중 하나를 고를 필요는 없습니다. 불러올 때마다 테스트별 필터를 포함해 기본 Test Coverage 패널에도 게시됩니다. 오래된 내용이 있나요? 문의 페이지에서 알려 주세요.

지원되는 포맷

포맷일반적인 파일
LCOVlcov.info, *.info
llvm-cov JSONllvm-cov export --format=json
Cobertura XMLcoverage.xml
JaCoCo XMLjacoco.xml
Istanbul / nyccoverage-final.json
SimpleCov (Ruby).resultset.json, coverage.json
Clover XMLclover.xml
OpenCover XMLcoverage.opencover.xml
coverage.py JSONcoverage.json (coverage json)
gcov / gcovr JSONgcov --json-format --stdout, gcovr --json
Go coverage profilecoverage.out
SonarQube generic<coverage version="1"> XML
GNATcoverage XML (Ada)gnatcov coverage --annotate=xml
BullseyeCoverage XMLcovxml output
Visual Studio.coveragexml (dotnet-coverage convert)
Coveralls JSONcoveralls.json
Xcode xccov JSONxcrun xccov view --report --json
모든 기능 보기 전체 사용자 가이드