Versión de evaluación. Todas las funciones siguientes están disponibles durante la prueba gratuita de 14 días. Tras la prueba, hay una clave de licencia disponible a petición, emitida automáticamente, y una clave puede habilitar o limitar funciones concretas por usuario. Solicitar una licencia →
Cuando una IA escribió las pruebas
La cobertura frente a una suite de pruebas generada
La visión general plantea el argumento general. Aquí está aplicado a la propia lista de funciones, porque una suite generada falla con una forma característica —cada línea tocada, la mitad de las decisiones nunca tomadas y unas cuantas funciones nombradas en los títulos de las pruebas pero jamás llamadas— y cinco de los puntos de abajo son justo lo que hace visible esa forma.
- La cobertura de ramas y MC/DC, con el hover por arco y por decisión, separa la línea se ejecutó de la decisión se ejercitó. Una suite que solo recorre el camino feliz marca casi el 100% en líneas y casi el 50% en ramas, y ese desfase es el hallazgo. Una ejecución de pruebas en verde no muestra nada de eso.
- La puntuación compuesta es una media armónica, de modo que una métrica fuerte no puede enmascarar a una débil: exactamente la aritmética que hay que aplicarle a una suite generada. Promediar el número de líneas con el de ramas enterraría el único número que interesa mirar.
- Los avisos de código muerto añaden una entrada en el panel Problems para cualquier función con líneas medibles y cobertura cero. Una suite que nombra una función en el título de una prueba y nunca llega a ella no falla en ningún otro sitio.
- La cobertura de diff frente a una referencia base de git reduce todo lo anterior a las líneas que acaban de cambiar: el código que aceptaste esta tarde, y no la media de toda la vida del repositorio, con la que una suite grande ya existente seguirá pareciendo sana tan tranquila.
- Copy Uncovered Lines emite exactamente lo que nunca se ejecutó, en Markdown — o sea, algo que se pega de vuelta directamente en el asistente que escribió la suite en primer lugar.
Nada de esto lee una prueba y la juzga, y nada de lo anterior debe entenderse como esa afirmación: una prueba sin ninguna aserción sigue cubriendo cada línea que toca. Lo que esto mide es la parte que un revisor no puede retener en la cabeza: qué código no se ejecutó nunca.
Único en esta extensión
Su cobertura de líneas dice 100%. 312 bytes de su binario nunca se ejecutaron.
Todas las demás métricas aquí se miden desde el código fuente: instrumentar el código, ejecutar la compilación instrumentada, contar lo que se disparó. La cobertura de código objeto mide algo que ninguna herramienta basada en la fuente puede alcanzar: cuánto del binario construido se ejecutó realmente, en bytes de instrucciones, observando el flujo de instrucciones. Un compilador produce código del que ninguna línea de su fuente da cuenta: comprobaciones de límites de arrays, tablas de salto de switch, volcados de registros, rutinas de ejecución para división o coma flotante. Nada de eso aparece en su fuente, así que ninguna herramienta basada en la fuente —incluida esta extensión, para cualquier otra métrica que lee— puede decir si se ejecutó. Es además la única métrica aquí que responde a ¿esto cubre el ensamblador?, ya que el ensamblador escrito a mano nunca se instrumenta.
DO-178C lo nombra explícitamente: en el nivel A se exige además de MC/DC. Ninguna otra extensión de VS Code lo lee. Cómo obtenerlo de un destino embebido →
Capacidades
Funciones principales
- Una vista Coverage de cada archivo medido, la regla de vista general y Annotated Source; en el propio margen del editor, de forma predeterminada, solo lo que merece una marca — barras MC/DC, triángulos de desde-la-última-ejecución, puntos de líneas editadas — con barras solo en las líneas sin cubrir o un mapa de calor de recuentos de aciertos a un ajuste de distancia.
- Cobertura por línea de sentencias, ramas, funciones, regiones, MC/DC e instanciaciones C++, según lo que proporcione el archivo de traza.
- Ingesta multiformato y combinación determinista de varias ejecuciones con procedencia registrada.
- Remapeo de rutas — rutas de la máquina de compilación CI → su espacio de trabajo local.
- Cobertura diferencial — decora solo las líneas cambiadas frente a una referencia base de git.
- Insignias de Explorer y un elemento de barra de estado global, coloreado según la puntuación compuesta.
- Modo de vigilancia — recarga automática cuando cambia un archivo de traza.
- Run Tests with Coverage — reconoce el ejecutor de pruebas desde la raíz del espacio de trabajo y lo ejecuta con cobertura activada, cargando lo que escribe.
- Archivos de traza remotos — una entrada de
coverageFile.pathspuede ser una URLhttps://: el artefacto de CI se descarga de forma condicional (ETag / Last-Modified), con las cabeceras que configure enremote.headers, se carga como un archivo local y se vuelve a descargar con un temporizador medianteremote.refreshMinutes; cuando una descarga falla, se carga en su lugar la última copia descargada. - Variables en las rutas —
${workspaceFolder},${workspaceFolderBasename},${userHome},${env:NAME},${command:id}y${config:section.key}en todos los ajustes de ruta; una variable desconocida se deja tal como está escrita, de modo que una errata aparece en el registro de detección en lugar de desaparecer. - Espacios de trabajo multirraíz — cada carpeta se detecta desde sus propios ajustes (su
.vscode/settings.jsono su entrada en el.code-workspace), sus archivos de traza se fusionan en una sola ejecución, la vista Coverage agrupa los archivos por carpeta, y una carpeta añadida o quitada recarga la cobertura por sí sola. - Dos desencadenantes de recarga más — una entrada absoluta de
coverageFile.pathsfuera del espacio de trabajo se sondea, de modo que un archivo que aparece allí se carga; ywatch.reloadAfterTasksnombra tareas (npm: test) cuyo final recarga la cobertura, esté o no activado el modo de vigilancia. - Progreso que se puede cancelar — una carga de diez o más archivos de traza, o de 8 MB o más, y cada Generate Full HTML Report se ejecutan bajo una notificación de progreso con un botón Cancelar; cancelar deja cargada la ejecución anterior.
- La propia vista Test Coverage de VS Code — cada carga se publica también a través de la API Test Coverage del editor (
testCoverage.publish), de modo que el panel de cobertura del Test Explorer, los porcentajes por archivo del Explorer y el conmutador Show Inline Coverage del editor muestran las mismas cifras; Show in Test Coverage View publica a petición y abre el panel. Con pruebas con nombre (TN:en lcov), la vista filtra la cobertura de un archivo por prueba. - Regla de remapeo sugerida — cuando una carga deja archivos sin coincidencia (rutas de contenedor o de CI frente a un checkout local), la extensión infiere la regla de
pathRemapque explica el mayor número de ellos, ofrece Apply Suggested Remap en el resultado de la carga y Suggest Path Remap Rule en la paleta; no se escribe nada sin el clic. - Globs de exclusión —
fuciniCoverage.ignore(vendor/**,**/*.generated.ts) descarta archivos enteros de la ejecución al cargar, de modo que cada vista, control y exportación cuenta sin ellos; el resultado de la carga dice cuántos y la salida nombra cada uno. - No medido frente a no cubierto — un archivo que ninguna prueba cargó no se puntúa como 0% a sus espaldas; la barra de estado dice no medido para uno de ellos, y
unmeasured.modepuede listar esos archivos en la vista Coverage o contar cada uno como un archivo sin cubrir, conthreshold.unmeasuredFilespara controlar cuántos hay. - Lo que hizo la fusión, visible — con varios tracefiles cargados, cada fila de archivo nombra el informe del que proceden sus números, la insignia lleva contorno donde esos números anularon un informe más antiguo, cada fila de tracefile cuenta cuántos de sus archivos fueron anulados o anularon otros, y hacer clic en una fila de tracefile resalta sus archivos en el árbol (
coverageView.mergedMarks).
Puntuación compuesta y cumplimiento
Una única media armónica ponderada sobre líneas, ramas, funciones, regiones, MC/DC e instanciaciones. Al ser una media armónica, una métrica débil no puede quedar enmascarada por una perfecta. Los pesos se ajustan por defecto a niveles IEC 61508 / ISO 26262 / DO-178C, y el veredicto COMPLIANT / NON-COMPLIANT se determina mediante umbrales por métrica junto con un modo configurable.
Screenshot pending — add assets/img/statusbar.png (see SCREENSHOTS.md).Análisis en el editor
- CodeLens de función — % de cobertura por función, haga clic para saltar a su primera línea no cubierta.
- Información de ramas y MC/DC al pasar el cursor — recuentos tomados/no tomados por rama y desgloses de condición/vector por decisión; marcador de margen MC/DC coloreado opcional.
- Avisos de código muerto — aviso en el panel Problems para funciones con líneas medibles y cobertura cero.
- Navegación Next/Previous Uncovered.
- Aviso de discrepancia cuando el contenido de un archivo ya no encaja con su ejecución — actualizado al guardar o al cambiar en disco, con la diferencia exacta al pasar el ratón.
- Desde la última ejecución — un triángulo rojo en cada línea ejecutada en la ejecución anterior y no en esta, uno verde para el caso inverso, con la regla de vista general y los recuentos al pasar el ratón.
- Búferes editados — cada marca, descripción emergente y CodeLens se mueve con el texto al editar, y se retira de una línea reescrita, donde un punto gris dice por qué.
- Modos de margen del editor —
editorGutter.modelimita el margen a los hallazgos (off), pone una barra en cada línea que nunca se ejecutó y una ámbar donde una rama nunca se tomó (uncovered), o añade un tono cálido en cada línea ejecutada, más intenso cuantas más veces se ejecutó (heatmap); Choose Editor Gutter Mode... cambia de modo desde la paleta o el menú de la barra de estado. - Recuentos de aciertos en línea —
hitCounts.inlineescribe×12tras cada línea en la que empieza una sentencia,×0incluido; Toggle Inline Hit Counts lo alterna. - Entradas por línea en Problems —
problems.perLinepone un diagnóstico de tipo Information en cada bloque de líneas que nunca se ejecutaron en un documento abierto (una función muerta es una entrada, no cuarenta), y opcionalmente en cada línea con una rama nunca tomada; las entradas siguen a sus líneas mientras edita. - Tinte de línea y mapa en la barra de desplazamiento —
lineHighlightpone un tinte translúcido detrás de las líneas mismas en lugar de (o además de) una marca en el margen, yoverviewRulerdecide por su cuenta la franja de la barra de desplazamiento: con el margen desactivado, eso es un mapa de los huecos del archivo y nada junto al código. - Qué archivo de traza cubrió esta línea — con varios informes combinados, la información al pasar el cursor nombra cada uno que cubrió la línea (incluido el nombre de suite del
TN:de lcov), y un clic en una fila de archivo de traza en la vista Coverage ilumina las líneas que aportó.
- Rojo, ámbar y verde — el modo
coveragedeeditorGutter.modeylineHighlightpinta cada línea medida con los colores de la escala de colores; el botón de modo de la barra de estado yAlt+Gpasan de un modo al siguiente. - Sus colores, con vista previa — la escala de colores y los tonos del mapa de calor (
heatmap.colors,heatmap.colorsDark) son ajustes, y la página de ajustes los muestra en un editor claro y en uno oscuro a medida que se eligen. - De qué informe procede un archivo — cuando dos informes miden el mismo código, las reglas de
coverageFile.sources, o Choose Coverage Source for This File..., deciden cuál muestra cada archivo en lugar de que gane el más reciente.
Informes e historial
- Generate Full HTML Report — un informe auto-renderizado, de varias páginas, por directorio; Open Annotated Source para un solo archivo.
- Historial local opcional de ejecuciones con una tendencia de cobertura (▲/▼), además de Compare Two History Runs y Compare with Last Run.
- Show Worst-Covered Files / Functions y Copy Uncovered Lines (Markdown).
- Export Fucini JSON — el modelo normalizado completo.
- Export Coverage Report... — la misma ejecución como CSV (por archivo o por función), resumen en Markdown, archivo LCOV, XML de Cobertura, SARIF, o insignia SVG autónoma. Con veinticinco lectores y estos escritores la extensión convierte entre formatos: cargue JaCoCo o llvm-cov JSON y emita el LCOV que leen Codecov, Coveralls y SonarQube, o el XML de Cobertura que ingieren Jenkins, GitLab y Azure DevOps.
- Generate Coverage Badge — un SVG al estilo de shields escrito directamente en el espacio de trabajo (
badge.outputPath, de forma predeterminadacoverage-badge.svg) para que un README lo incruste cony sin ningún servicio alojado;badge.metricelige líneas, ramas, MC/DC o la puntuación compuesta, el color sigue los niveles decolorScale.*, ybadge.autoUpdatela reescribe tras cada carga.
Screenshot pending — add assets/img/report.png (see SCREENSHOTS.md).
Screenshot pending — add assets/img/annotated-source.png (see SCREENSHOTS.md).Community y Pro, función por función
Dos fichas, un solo código. Community es el nivel gratuito para siempre, y aquel en el que cae la ficha Pro tras su prueba de 14 días; Pro y la prueba son todo, sin límites. La línea está trazada para que el nivel gratuito siempre vea cada hallazgo y pague solo por comodidad, prueba y escala — en VS Code, Fucini Coverage: What Community Includes muestra la misma lista con los recuentos de hoy frente a cada límite.
| Capacidad | Community (gratis) | Pro, y la prueba |
|---|---|---|
| Los 25 formatos, fusión de varios archivos, reasignación de rutas | ✓ | ✓ |
| Márgenes, regla de vista general, insignias del Explorador, vista Cobertura, CodeLens, descripciones emergentes | ✓ | ✓ |
| Modo vigilancia con recarga automática; Run Tests with Coverage | ✓ | ✓ |
| Cobertura del diff, historial y tendencia, marcas «desde la última ejecución» | ✓ | ✓ |
| Cargar cobertura mediante el comando | 25 al día (las cargas automáticas no cuentan) | ilimitado |
| Comparar ejecuciones, Check Coverage Thresholds, Open HTML Report, Export Coverage Report, Export Fucini JSON | 5 a la semana cada uno | ilimitado |
| Annotated Source, en el sitio | 5 a la semana | ilimitado, más un panel lateral persistente y Generate Full HTML Report |
| Export Coverage Report | CSV (por archivo, por función) | también Markdown, LCOV, Cobertura XML, SARIF, insignia SVG |
| Un archivo que ya no coincide con su cobertura | notificado y atenuado | también la línea, función o suma de comprobación que lo demostró |
| Mutantes supervivientes | marcados en la línea, con su número | también qué cambió cada mutante |
| Pruebas que ejecutaron una línea | cuántas | también sus nombres |
| CRAP | Max CRAP de la ejecución, CRAP en cada función | también la lista clasificada Riskiest Methods |
| Risk hotspots | cuántos, y la peor puntuación | también la lista ordenada, cada uno abriendo su función |
| Cobertura MC/DC, barras de margen y descripción emergente | — | ✓ |
| Cobertura de código objeto puntuada y controlada | solo se anuncia su presencia | ✓ |
| Un archivo medido por varios informes | el informe más reciente | además elegir uno por archivo, o combinarlos (agree / union) |
| Telemetría necesaria | no — opcionalmente, y una vez por máquina, Unlock Full Features cambia telemetría de uso detallada por 30 días de todo lo de la columna derecha | no |
Una semana dura siete días desde el primer uso que la abrió, y nada que solo lea la cobertura se cuenta. ¿No está listo para una suscripción? Un pase de 7 días es todo lo de la columna derecha durante una semana, pagado una sola vez, sin nada que cancelar.
VS Code y Visual Studio, lado a lado
Un producto, dos editores, un lector: el mismo informe da las mismas cifras, dígito a dígito, en ambos. Coverage Studio para Visual Studio funciona en Visual Studio 2022 y 2026 — Community, Professional y Enterprise y no usa la cobertura de código propia de Visual Studio, que en 2022 es solo de Enterprise; está incluido en todos los planes de pago, y un dispositivo con ambos editores es un puesto. Todo lo de encima de la línea está en ambos; debajo, aquello para lo que Visual Studio no tiene equivalente, y lo que allí está aún por llegar.
| Capacidad | VS Code | Visual Studio |
|---|---|---|
Los 25 formatos, combinación de varios archivos, reasignación de rutas, la misma configuración fuciniCoverage.* y .vscode/settings.json | ✓ | ✓ |
| Márgenes, regla de vista general, contadores de ejecución, lente por función, información al pasar el ratón, la vista Coverage, la barra de estado y sus tarjetas | ✓ | ✓ |
| Modo de vigilancia con recarga automática; Next Uncovered, Next Partly-Tested Decision; copiar como Markdown | ✓ | ✓ |
| Puntuación compuesta, umbrales y el veredicto COMPLIANT; MC/DC; CRAP | ✓ | ✓ |
| Getting Started, en 18 idiomas | un recorrido guiado | una página en Tools → Coverage Studio |
| Run Tests with Coverage, Run This Test with Coverage, cobertura tras cada guardado; el panel Test Coverage propio del editor | ✓ | ✓, y Collect Coverage in Test Explorer… — el panel Test Coverage es una API de VS Code |
| Insignias del Explorador | ✓ | — (el Explorador de soluciones no puede decorar archivos) |
| Annotated Source, informe HTML, exportaciones, Check Thresholds, Error List, historial y tendencia, cobertura de diferencias | ✓ | ✓ |
| Qué pruebas ejecutaron una línea, excluir desde el árbol y desde el editor, la perspectiva por espacios de nombres y el cuadro de búsqueda, sesiones de cobertura, el gráfico de tendencia, la línea base de CI | ✓ | ✓, más Run Native Project with Coverage para un proyecto C++ |
| Nivel gratuito, prueba, pago | ✓ | — (un plan de pago; la clave se encuentra en una máquina donde VS Code está activado) |
Lo siguiente: toda esta cobertura en Azure DevOps, en una extensión gratuita. Azure DevOps muestra la cobertura de una compilación solo hasta donde llega su propio formato — líneas, y ramas como porcentaje. Fucini DevOps Studio mostrará todo lo que Coverage Studio lee: cada uno de estos 25 formatos, para cada lenguaje, con MC/DC, condiciones, la puntuación compuesta y las puertas, como una pestaña Coverage en la canalización que la produjo. Siga las noticias para la primera versión.
Referencia de configuración
Configure en la interfaz de ajustes (busque Fucini Coverage) o en 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.
Una fila que termina en Por carpeta. admite un valor a nivel de carpeta en un espacio de trabajo multirraíz: cada carpeta se detecta con su propio .vscode/settings.json o su entrada en el .code-workspace, y ${workspaceFolder} en ella significa esa carpeta.
Localización
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
language | auto | Fija la interfaz propia de esta extensión (barra de estado, notificaciones, descripciones emergentes, webviews de licencia e informe) a un idioma concreto, con independencia del idioma de presentación de VS Code. auto sigue a VS Code. Uno de auto, en, uk, nl, de, fr, es, hr, pl, it, pt, ru, tr, he, ja, zh, hi, ko, ar. No cambia las entradas de la paleta de comandos ni las etiquetas/descripciones de la interfaz de ajustes: VS Code las resuelve desde su idioma de presentación. |
Detección y carga
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
coverageFile.defaultLocation | "" | Carpeta base para la detección y los diálogos de selección de archivos. Variables: ${workspaceFolder}, ${workspaceFolderBasename}, ${userHome}, ${env:NAME}, ${command:id}, ${config:section.key}. Por carpeta. |
coverageFile.paths | [] | Archivo(s) de traza que cargar y combinar, relativos a la carpeta base, absolutos (las mismas variables que arriba), o una URL http(s):// descargada en cada carga — añada #lcov.info (u otro nombre de archivo) como fragmento de la URL cuando la propia URL no tenga extensión. Un glob * relativo es recursivo bajo la carpeta base; una entrada absoluta también puede llevar un comodín (${workspaceFolder}/build/coverage-merged/*.lcov.info, ** para cualquier profundidad), que se busca bajo las carpetas anteriores a él. Por carpeta. |
watch.enabled | true | Recargar la cobertura cuando cambie un archivo de traza — o aparezca, en el caso de una entrada absoluta fuera del espacio de trabajo. Por carpeta. |
watch.reloadAfterTasks | [] | Nombres de tareas (label, o source: name como npm: test) cuyo final recarga la cobertura, esté o no activado watch.enabled. Por carpeta. |
remote.headers | [] | Cabeceras Name: value enviadas con cada descarga de URL; las variables se expanden, así que Authorization: Bearer ${env:CI_TOKEN} mantiene el token fuera de settings.json. Por carpeta. |
remote.refreshMinutes | 0 | Volver a descargar las entradas URL cada N minutos (GET condicional; 0 = solo al cargar). Por carpeta. |
baseline.report | "" | El informe con el que se compara cada ejecución cargada — el de la rama main, tal como lo publica el servidor de compilación: una URL, descargada con remote.headers y guardada en caché como lo es una URL de coverageFile.paths, o la ruta de un artefacto descargado, absoluta o relativa a la carpeta. La tarjeta de la barra de estado dice entonces dónde queda esta ejecución respecto a él, y Compare with CI Baseline enumera los archivos que se movieron. Vacío: sin línea base. Por carpeta. |
Escala de color e insignias
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
colorScale.preset | default | colorblind cambia rojo, ámbar y verde por bermellón, naranja y azul (Okabe–Ito) en todo lo que colorea la cobertura; los colores que haya cambiado abajo tienen prioridad. |
colorScale.lowColor | #8b1a1a | Extremo bajo del degradado de cobertura. |
colorScale.midColor | #b8860b | Color pivote del degradado. |
colorScale.highColor | #228b22 | Extremo alto (100%) del degradado. |
colorScale.lowThreshold | 80 | % en el que la insignia pasa de bajo a medio. |
colorScale.highThreshold | 90 | % en el que la insignia pasa de medio a alto (y pivote del degradado). |
heatmap.colors | ["#fff1a8", …, "#a63603"] | Los cinco tonos del mapa de calor en un tema claro, desde la línea que menos se ejecutó hasta la que más. |
heatmap.colorsDark | ["#6e5f22", …, "#ff6a00"] | Lo mismo para un tema oscuro, donde más brillante significa más. |
Puntuación compuesta (media armónica ponderada)
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
whmWeights.lines | 1 | Peso de la cobertura de líneas/sentencias. |
whmWeights.functions | 1 | Peso de la cobertura de funciones. |
whmWeights.regions | 1.5 | Peso de la cobertura de regiones (llvm-cov). |
whmWeights.branches | 2 | Peso de la cobertura de ramas. |
whmWeights.mcdc | 4 | Peso de la cobertura MC/DC. 0 la excluye. |
whmWeights.instantiations | 0.5 | Peso de las instanciaciones de plantillas de C++ (llvm-cov). |
Umbrales y cumplimiento
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
threshold.profile | standard | standard establece los valores predeterminados de abajo; safety pone todas las puertas en 100 salvo la puntuación de mutación; custom deja lo que usted haya configurado. En el perfil predeterminado las métricas de seguridad quedan sin puerta — un proyecto que no mide MC/DC no suspende por ello. |
threshold.statement | 80 | % mínimo de sentencias. 0 desactiva la comprobación. |
threshold.branch | 70 | % mínimo de ramas. |
threshold.mcdc | 0 | % mínimo de MC/DC. |
threshold.functions | 80 | % mínimo de funciones. |
threshold.regions | 75 | % mínimo de regiones (llvm-cov). |
threshold.instantiations | 0 | % mínimo de instanciaciones (llvm-cov); los proyectos solo de C se omiten. |
threshold.conditions | 0 | % mínimo de condiciones. |
threshold.functionCalls | 0 | % mínimo de llamadas a funciones, cuando el informe lo trae. |
threshold.objectCode | 0 | % mínimo de código objeto, cuando el informe lo trae. |
threshold.mutation | 0 | Puntuación de mutación mínima, cuando hay cargado un informe de mutación. |
threshold.weighted | 75 | Puntuación compuesta mínima. |
compliance.mode | strict | strict | whm | both | either. |
compliance.diagnostics | false | Un error en Problemas por cada umbral incumplido, sobre el tracefile. |
threshold.unmeasuredFiles | -1 | Número máximo de archivos no medidos (requiere unmeasured.mode en list o count). -1 no comprueba; 0 falla con el primer archivo que ninguna prueba cargó. |
problems.perLine | off | off | uncovered | uncoveredAndPartial: una entrada de tipo Information (un subrayado ondulado en el editor) por cada bloque de líneas consecutivas sin cubrir en cada documento abierto, opcionalmente más una por cada línea con una rama nunca tomada. Independiente de problems.enabled. Por carpeta. |
Diff, remapeo e informes
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
pathRemap | [] | Reescrituras de rutas {from,to}, en orden; to puede usar ${workspaceRoot}, que prueba primero la carpeta del propio archivo de traza y luego todas las demás carpetas del espacio de trabajo. Cuando una carga deja archivos sin coincidencia, el resultado de la carga ofrece Apply Suggested Remap con la regla inferida de las rutas sin coincidencia (también Suggest Path Remap Rule en la paleta); no se escribe nada hasta que haga clic. Por carpeta. |
ignore | [] | Patrones glob de archivos enteros que dejar fuera de la ejecución (vendor/**, **/*.generated.ts, build/**) — descartados al cargar, de modo que cada vista, control y exportación cuenta sin ellos. Se comparan con la ruta relativa al espacio de trabajo y con la absoluta; un patrón sin / coincide con un nombre a cualquier profundidad, como en .gitignore. Por carpeta. |
ignore.generated | true | Deja los archivos .NET generados fuera de cada total, página y exportación — *.Designer.cs, *.g.cs, *.g.i.cs, *.generated.cs, *.razor.g.cs, *.AssemblyInfo.cs, GlobalUsings.g.cs, Migrations/** y obj/** — antes de que se aplique ignore. Se desactiva para un proyecto que prueba sus migraciones. Por carpeta. |
ignore.namespaces | [] | Espacios de nombres que quedan fuera de cada total y de cada página, para fuentes .NET: un archivo cuya declaración de espacio de nombres coincide con uno de ellos no se cuenta. Un prefijo con * como comodín — Acme.Generated, Acme.*.Migrations, *Tests. Por carpeta. |
ignore.attributes | ["ExcludeFromCodeCoverage"] | Atributos que sacan del recuento una clase, un método o una propiedad .NET, leídos del código fuente: el miembro situado bajo uno de ellos se excluye como lo excluiría LCOV_EXCL_START/STOP, sea cual sea la herramienta que escribió el informe. Nombres con o sin el sufijo Attribute, con o sin espacio de nombres; añada GeneratedCode, Obsolete o los suyos. Por carpeta. |
testRun.perTest | false | Run Tests with Coverage ejecuta una receta dotnet test clase de prueba a clase de prueba y etiqueta cada informe con su clase, de modo que la información al pasar el cursor, el CodeLens y Show Tests That Ran This Line pueden decir qué pruebas ejecutaron una línea — más lento, y solo para .NET, cuyo informe Cobertura no sabe decirlo por sí mismo. Por carpeta. |
testRun.onSave | false | Guardar un archivo fuente ejecuta las pruebas que lo cubren, con cobertura, un momento después de guardar: para una solución .NET, solo los proyectos de pruebas que referencian el proyecto del archivo guardado, un dotnet test cada uno; cualquier otro ejecutor, su receta completa. Varios guardados son una sola ejecución; una ejecución ya en marcha no se interrumpe. Por carpeta. |
testRun.skipWhenTestsFail | false | Run Tests with Coverage deja la cobertura en pantalla tal como estaba cuando el ejecutor termina con un fallo, y lo dice en el panel Output — una ejecución en rojo no pinta de rojo un archivo verde. Por carpeta. |
unmeasured.mode | off | off | list | count: qué hacer con los archivos del espacio de trabajo del tipo de la ejecución que ninguna prueba cargó (véase No medido frente a no cubierto). list los nombra en la vista Coverage y en el resultado de la carga; count además puntúa cada uno como un archivo sin cubrir de sus líneas de código. Cambiarlo recarga. |
unmeasured.exclude | ["**/*.h", "**/*.hpp", "**/*.hh", "**/*.inl", "**/*.d.ts"] | Archivos que nunca se consideran no medidos, con la sintaxis glob de ignore — de forma predeterminada, los archivos solo de cabecera y solo de declaraciones. Por carpeta. |
hotspots.crapThreshold | 30 | Una función con esta puntuación CRAP o más es un risk hotspot, listado bajo el árbol de la vista Coverage, de peor a mejor — 30 es la cifra que propusieron los autores de la métrica. Solo los informes que incluyen la complejidad ciclomática tienen alguno. Por carpeta. |
hotspots.complexityThreshold | 0 | Una función así de compleja o más es también un hotspot, sea cual sea su cobertura; 0 lo desactiva. Por carpeta. |
gitDiff.enabled | false | Limitar la cobertura a las líneas cambiadas respecto a una referencia base. Por carpeta. |
gitDiff.baseRef | origin/master | Referencia base de Git para la cobertura del diff. Por carpeta. |
externalHtmlReport.dir | "" | Leer un directorio HTML de llvm-cov show ya generado para Annotated Source. Por carpeta. |
htmlReport.outputDir | "" | Directorio de salida para Generate Full HTML Report. Por carpeta. |
badge.outputPath | coverage-badge.svg | Dónde escribe Generate Coverage Badge el SVG — relativo a la carpeta del espacio de trabajo o absoluto, con las mismas variables que coverageFile.defaultLocation; las carpetas superiores se crean. Por carpeta. |
badge.metric | lines | lines | branches | mcdc | weighted: la cifra de toda la ejecución que muestra la insignia (weighted es la puntuación compuesta de la barra de estado). Sin datos para ella → un n/a gris. Por carpeta. |
badge.autoUpdate | false | Reescribir la insignia tras cada carga correcta, en silencio (registrado como [FUCINI_BADGE]). Por carpeta. |
Visualización y análisis
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
mcdcGutter.enabled | false | Margen MC/DC coloreado. |
statusBar.enabled | true | Mostrar elementos de la barra de estado para toda la ejecución y por archivo. |
statusBar.showLauncher | true | Lanzador de menú rápido siempre disponible. |
statusBar.showModeToggle | true | Un botón de la barra de estado que nombra el modo del margen; un clic lo hace avanzar uno. |
codeLens.enabled | true | CodeLens de cobertura por función. |
deadCode.enabled | true | Avisar de funciones sin cobertura. |
staleWarning.enabled | true | Marcar los archivos cuyo contenido ya no coincide con su ejecución. |
explorerBadges.enabled | false | Insignias de cobertura y descripción emergente junto a los archivos en el Explorador. |
coverageFile.rememberPicks | true | Escribir cada archivo elegido en coverageFile.paths. |
coverageFile.sources | [] | De qué informe cargado proceden los números de un archivo cuando lo mide más de uno: reglas ordenadas { "files": glob, "report": glob }, en las que decide la primera que coincide. Con "combine": "union" (cubierta donde cualquier informe ejecutó una línea) o "agree" (solo donde todos lo hicieron, las discrepancias en verde azulado) se combinan los informes coincidentes. Planes de pago. Por carpeta. |
coverageFile.mergeStrategy | newest | Para los archivos que ninguna regla decide: newest (gana el informe escrito en último lugar) u order (gana la entrada posterior en coverageFile.paths, sean cuales sean las fechas). Por carpeta. |
sinceLastRun.enabled | true | Marcas en el margen en las líneas cuya cobertura cambió desde la ejecución anterior. |
dirtyMarks.enabled | true | Punto gris en el margen en las líneas editadas desde que se cargó la ejecución. |
editorGutter.mode | off | off | uncovered | coverage | heatmap: nada más allá de los hallazgos anteriores, barras solo en las líneas sin cubrir (y parcialmente cubiertas), esas más una barra verde en cada línea cubierta, o esas más un tono cálido en cada línea ejecutada según su recuento de aciertos. Por carpeta. |
lineHighlight | off | off | uncovered | coverage | heatmap: un tinte translúcido detrás de la línea misma, para lo que marca el margen. Una opción propia, para que el margen pueda quedar limpio mientras se tiñen los huecos, o al revés. Por carpeta. |
overviewRuler | follow | follow | uncovered | off: si las líneas no cubiertas reciben una franja en la regla de vista general de la barra de desplazamiento. uncovered la pinta incluso con el margen desactivado — un mapa de los huecos del archivo a lo largo de la barra de desplazamiento y nada junto al código; off conserva las barras y quita la franja. Por carpeta. |
hitCounts.inline | false | ×N tras cada línea en la que empieza una sentencia, ×0 incluido. Por carpeta. |
testCoverage.publish | true | Publicar cada ejecución cargada en la propia vista Test Coverage de VS Code (panel del Test Explorer, porcentajes en el Explorer, Show Inline Coverage). Desactivado: ninguna entrada Fucini Coverage en el Test Explorer; Show in Test Coverage View sigue publicando a petición. |
coverageView.perspective | folders | Qué árbol muestra la vista Coverage: las carpetas y archivos del espacio de trabajo, o — para un informe .NET que nombra sus clases (Cobertura, Coverlet, OpenCover) — espacios de nombres, clases y métodos, cada uno con sus propios números. El desplegable de la vista lo escribe; solo se ofrece cuando la ejecución trae nombres de clases. |
coverageView.mergedMarks | true | Con varios tracefiles cargados: contornear la insignia de tracefile de cada archivo cuyos números anularon un informe más antiguo, y dejar que un clic en una fila de tracefile resalte los archivos que midió. Desactivado: insignias simples, sin resaltado; las filas de tracefile siguen contando lo que fue anulado. |
excludeComments | true | Excluir líneas de comentario, vacías & LCOV_EXCL_*, y las directivas del preprocesador en C, C++, Objective-C, CUDA y C#. |
excluded.includeInTotals | false | Contar las líneas excluidas en los totales. |
Historial
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
history.enabled | false | Guardar las ejecuciones localmente para tendencia y comparación. |
history.retention | 20 | Número máximo de ejecuciones guardadas. |
Acciones rápidas de la barra de estado
Todas desactivadas (false) por defecto salvo las dos últimas; actívelas para añadir la acción correspondiente al menú rápido: quickActions.compareWithLastRun, openAnnotatedSource, openAnnotatedSourceToSide, toggleAnnotatedSource, toggleWatch, worstCoveredFiles, worstCoveredFolders, worstCoveredFunctions, nextUncovered, previousUncovered, checkThresholds, copyUncoveredLines, compareHistoryRuns, exportJson, exportReport, generateBadge, showTestCoverage, chooseGutterMode, toggleInlineHitCounts.
Telemetría
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
telemetry.enabled | false | Telemetría de uso, desactivada de forma predeterminada. En el nivel Community, Unlock Full Features la canjea por todas las funciones Pro, MC/DC incluida, durante 30 días, una vez por máquina; una licencia de pago no se ve afectada. Consulta la política de privacidad para saber qué se envía. El resumen diario y el aviso de eliminación también dependen del propio telemetry.telemetryLevel de VS Code; el aviso de instalación y algunos eventos pequeños, no. |
Actualizaciones
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
update.checkForUpdates | true | Comprobar periódicamente fucini.software y el Marketplace de VS Code, y ofrecer instalar la versión más reciente. |
Licencias
| Ajuste | Predeterminado | Qué hace |
|---|---|---|
license.key | "" | Clave de activación de la preversión de evaluación (una cadena FCK1.…). Vinculada a esta máquina/usuario; puede incluir caducidad y límites por función. Consulta Evaluación y activación. |