COVERAGE NATIVA IN VS CODE E VISUAL STUDIO

La coverage che vive nel vostro editor

Caricate file 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 e dotCover, normalizzateli in un unico modello canonico, unite le esecuzioni in modo deterministico e leggete il risultato direttamente nei margini dell'editor — in VS Code, e in Visual Studio 2022 e 2026 in ogni edizione. Nessun visualizzatore separato per cui lasciare l'editor.

Scarica il VSIX Leggi la guida utente Esplora le funzionalità

Si parte gratis. Fucini Coverage Studio è gratuito per una prova di 14 giorni, con tutto sbloccato. Poi non ti blocca fuori, ma si assesta sul piano Community gratuito — tutte le funzionalità tranne MC/DC, con generosi limiti mensili su alcune. Passa quando vuoi a un piano superiore per l'insieme senza restrizioni, oppure sblocca tutto gratis condividendo la telemetria d'uso dettagliata. Vedi i piani →

Prossimamente: tutta questa coverage in Azure DevOps, in un'estensione gratuita. Azure DevOps mostra la coverage di una build solo fin dove arriva il suo formato — righe, e rami come percentuale. Fucini DevOps Studio mostrerà tutto ciò che Coverage Studio legge: ognuno di questi 25 formati, per ogni linguaggio, con MC/DC, condizioni, il punteggio composito e i gate, come scheda Coverage sulla pipeline che l'ha prodotta. Seguite le novità per la prima release.

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

Quando i test li ha scritti unʼIA

Una suite di test generata sembra completa. La copertura dice se lo è.

Un modello linguistico ti scrive una suite di test in pochi secondi, e si legge in modo convincente. Quello che non può dirti è se quei test raggiungono qualcosa che conta — e nemmeno la copertura di riga può farlo, perché un test senza alcuna asserzione illumina comunque ogni riga che tocca.

◆ Decisioni, non solo righe

MC/DC e copertura dei rami mostrano se ogni decisione è stata davvero esercitata, non solo se la riga è stata raggiunta. I test generati percorrono il percorso felice e lasciano intatto lʼaltro lato di ogni if: si legge come 100% di righe e 50% di rami. Quel divario è il risultato.

◆ Funzioni mai chiamate

Il rilevamento di codice morto elenca le funzioni che nessun test ha raggiunto. Una suite generata le nomina nei titoli e non ci arriva mai, cosa invisibile in unʼesecuzione verde.

◆ Legato alla modifica che hai davanti

La copertura del diff misura solo ciò che è cambiato rispetto a una base git, così «i test passano» diventa «il codice che hai appena accettato è testato». Funziona allo stesso modo che lʼabbia scritto una persona o un assistente.

Niente di tutto questo dimostra che un test sia buono — nulla può farlo. Ti dice, con precisione e riga per riga, che cosa non è mai stato eseguito: la parte che un revisore non riesce a tenere a mente e che un assistente non segnala spontaneamente. Funziona con TypeScript e JavaScript tramite Vitest, Jest o nyc, e con C, C++, Java e Ruby tramite i tracefile che quelle toolchain già producono.

Perché è diverso

Un modello, ogni formato, nessun visualizzatore personalizzato

◆ Venticinque formati in ingresso

LCOV, llvm-cov JSON, Cobertura, JaCoCo, Istanbul/nyc, SimpleCov, Clover, OpenCover, coverage.py, gcov JSON e testo semplice, Go, Coveralls, SonarQube, GNATcoverage, Bullseye, Visual Studio, Xcode, VectorCAST, Testwell CTC++, TRACE32, EMMA, UCIS/UCDB, NCover e dotCover — rilevati automaticamente e uniti in modo deterministico con provenienza registrata.

◆ UI nativa in uscita

Indicatori di riga, ramo e funzione, il righello di panoramica, i badge di Explorer e la vista Covered Files.

◆ MC/DC e regioni

Modified Condition/Decision Coverage, copertura di regioni e istanziazioni C++ da llvm-cov, con dettaglio per decisione al passaggio del mouse.

◆ Punteggio ponderato per la sicurezza

Una singola media armonica ponderata su tutte le metriche, con pesi allineati ai livelli IEC 61508 / ISO 26262 / DO-178C.

◆ Gating di conformità

Verdetti COMPLIANT / NON-COMPLIANT con soglie per metrica e modalità strict, whm, both o either.

◆ Coverage differenziale

Limita le decorazioni alle righe modificate rispetto a un riferimento base git — perfetto per verificare esattamente cosa una PR ha coperto o meno.

Operativo in 30 secondi

  1. Installa l’estensione e apri il tuo progetto.
  2. Esegui i test — Riquadro comandi → Fucini Coverage: Run Tests with Coverage. Riconosce vitest, jest, pytest, go, cargo, dotnet, maven, gradle, phpunit e ctest, esegue i tuoi test con la copertura attiva e carica ciò che scrivono. Hai già un file di traccia? Fucini Coverage: Pick Coverage File lo carica e lo ricorda.
  3. Apri un file sorgente — il margine mostra quali righe sono state eseguite, la barra di stato la percentuale del file, un passaggio del mouse le esecuzioni di ogni riga, e l’esecuzione compare nella vista Coverage e nel pannello Test Coverage di VS Code. Da quel momento si ricarica da sola ogni volta che il file di traccia cambia.

Richiede VS Code ≥ 1.88, oppure Visual Studio 2022 o 2026 — Community, Professional o Enterprise — più un file di traccia della coverage che il vostro progetto già produce. In Visual Studio 2022 la coverage integrata è solo per Enterprise; Coverage Studio per Visual Studio la mostra anche su Community e Professional, dal file che la vostra build già scrive.

Il confronto

Anche VS Code e diverse estensioni gratuite mostrano la copertura. Ecco che cosa fa ciascuno secondo la propria documentazione, a settembre 2026: dove un README non menziona qualcosa, la tabella lo dice invece di tirare a indovinare.

Fucini Coverage StudioVS Code, integratoCoverage GuttersCode Coverage (markis)Gcov Viewer
Da dove arriva la copertura25 formati di file di traccia, più i report di mutazione di PIT e Strykerun’estensione di test che fornisce la coperturafile lcov e XMLfile lcovfile .gcda di GCC, tramite gcov
Righe non coperte nell’editor✓✓✓✓, e in Problems✓
Copertura dei rami, per ramo✓se l’estensione di test la forniscenon descrittonon descrittonon descritto
MC/DC✓ (Pro)—non descrittonon descrittonon descritto
Più file di traccia uniti, e quale ha coperto ogni riga✓—più file supportatinon descrittonon descritto
Ricarica quando il file di traccia cambia✓mostra l’ultima esecuzione dei test✓non descrittonon descritto
Copertura delle modifiche, soglie e cronologia✓copertura mostrata nell’editor delle differenzenon descrittonon descrittonon descritto
Report HTMLgenerato, ospitato in proprio—anteprima di uno esistentenon descrittonon descritto
Copertura per gli agenti IA: strumenti per modelli linguistici e un server MCP✓non descrittonon descrittonon descrittonon descritto
I test che hanno eseguito una riga, e i test toccati dalle tue modifiche✓copertura per test, quando l'estensione di test la riportanon descrittonon descrittonon descritto
Risultati dei test di mutazione nell'editor✓ (PIT, Stryker)non descrittonon descrittonon descrittonon descritto
Una soglia sul nuovo codice✓non descrittonon descrittonon descrittonon descritto
Gli stessi numeri in Visual Studio e dalla riga di comando✓—non descrittonon descrittonon descritto

Non è un aut aut con la vista di VS Code: ogni caricamento viene pubblicato anche nel pannello nativo Test Coverage, filtro per test compreso. Qualcosa qui è superato? Segnalalo nella pagina dei contatti.

Formati supportati

FormatoFile tipico
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
Vedi ogni funzionalità Guida utente completa