Coverage Studio
Fucini Coverage Studio for Visual Studio
The same coverage, in the other IDE — included with the subscription you already hold.
Coverage Studio reads the coverage file your build already wrote — 25 formats, from lcov and llvm-cov to JaCoCo, Cobertura, OpenCover, GNATcoverage and Xcode's xccov — and paints it on the code. This is that reader in Visual Studio: the same marks in the editor and the same numbers per file and per function as in Coverage Studio for VS Code, to the digit, for a run that happened wherever it happened, with nothing instrumented and no test run started from the IDE.
It runs on every edition that loads extensions — Community, Professional and Enterprise alike, and nothing in it asks which one you have. That matters more here than it usually does. In Visual Studio 2022, code coverage is an Enterprise feature: a C++ or C# team on Community or Professional has never seen coverage in this IDE at all, whatever their build already writes, and this is the only coverage those editions will show. Visual Studio 2026 opened its own coverage to every edition; the table below says where each of the two fits.
It is included with a Coverage Studio subscription — Pro, Pro Plus, Business or Enterprise — at no extra cost, and a 7-day pass covers it for its week; it is only for people who pay: there is no free tier in Visual Studio, and no commerce inside it either — no checkout, no trial, no upgrade prompt. A seat is a device, not an editor: on a machine where Coverage Studio for VS Code is activated, this edition finds that key by itself and claims no second seat. Students keep it for as long as their grant runs.
A repository set up for VS Code is set up for Visual Studio: the same fuciniCoverage.* settings are read from the same .vscode/settings.json, and your own colours and thresholds come along from VS Code's user settings when it is on the machine. A solution or a folder — the way a CMake project is opened — both work.
What is drawn where
| Where | What |
|---|---|
| A margin left of the line numbers | A bar per line: red never ran, amber partly, and in heatmap mode cold to hot by visit count |
| After a line | ×12, the visit count, with Show Inline Hit Counts |
| Above a function | One line — 37.14% covered (13/35 lines), branches 10/22, complexity 22, CRAP 142.2 — beside Visual Studio's own CodeLens, not over it |
| The scroll bar | A stripe for every uncovered and partly covered line |
| A hover on a marked line | Which branch was not taken, which condition was never shown to matter, in words |
| View → Other Windows → Coverage | Every file with its metrics and one score over all of them; files no test loaded listed beneath as Unmeasured |
| The status bar | Coverage 58.02% and File 61.79%, each opening the full card |
| Output window, Fucini Coverage | What was looked for, found, loaded and remapped, and every problem with its code |
Every command is under Tools → Coverage Studio; Getting Started there opens the six steps as a page with a button for each, in your language, and opens by itself the first time. The user guide says, section by section, where this edition differs from the VS Code one.
Beside Visual Studio's own coverage
| Visual Studio's built-in coverage | Coverage Studio for Visual Studio | |
|---|---|---|
| Editions | Community, Professional and Enterprise since Visual Studio 2026; Enterprise only in 2022 and earlier | Any edition that loads extensions, 2022 and 2026, included with a Coverage Studio subscription |
| Where the numbers come from | Its own instrumented run, started from Test Explorer, vstest.console.exe or Microsoft.CodeCoverage.Console — wanting .pdb files, a debug build and optimisations off | A coverage file that already exists, written by your build, your CI job or your target |
| Languages | Managed (CLR) and native code, built and run on Windows | Whatever produced the file: C, C++, C#, Visual Basic, Java, Python, Go, Rust, Swift, Objective-C, Ada, PHP, Ruby, JavaScript and TypeScript |
| Formats | Reads its own .coverage; exports .coverage, XML or Cobertura | Reads 25 formats, gzipped or not — lcov, llvm-cov, gcov/gcovr, Cobertura, JaCoCo, Istanbul, Clover, OpenCover, coverage.py, SimpleCov, GNATcoverage, BullseyeCoverage, Testwell CTC++, VectorCAST, TRACE32, xccov, Coveralls, SonarQube generic, and Visual Studio's own .coveragexml |
| What is counted | Blocks, with a line count beside them | Lines, branches, conditions, functions and MC/DC, plus mutation reports read mutant by mutant |
| In the editor | Coverage colouring on lines, on margin glyphs or both, refreshed by running coverage again | Marks that follow the file as it is edited, hit counts, the decision that was only half tested, and a reload whenever the file your build writes changes |
Neither replaces the other. If the tests are .NET and they run on your machine, Visual Studio 2026 already has you covered — and Coverage Studio will read what it exports. What it cannot do is show you the coverage of a build that ran on a target, a container or a CI runner, in a toolchain that writes lcov or llvm-cov, against the decision and condition levels a safety standard asks for; and on 2022 Community and Professional it cannot show you any coverage at all.
Not in this edition
Visual Studio has no counterpart for some of what the VS Code edition does, and some is still to come. Run Tests with Coverage and the Test Coverage view are VS Code APIs: here, run your tests as you do and let Watch Coverage File reload. Solution Explorer cannot show badges on files. Still to come, in the order subscribers ask for them: the annotated source view, the HTML report and the exports, Check Thresholds, the Error List entries, history and trend, diff coverage — say which part you need through the contact page.
