FUNCIONALIDADES E DEFINIÇÕES

Tudo o que faz, tudo o que pode ajustar

Uma visão completa do conjunto de funcionalidades e a referência de configuração completa — cada definição com o seu valor predefinido.

Transferir o VSIX

Versão de avaliação. Todas as funcionalidades abaixo estão disponíveis durante o período experimental gratuito de 14 dias. Findo o período, uma chave de licença está disponível mediante pedido, emitida automaticamente, e uma chave pode ativar ou limitar funcionalidades individuais por utilizador. Pedir uma licença →

Quando foi uma IA a escrever os testes

A cobertura perante uma suíte de testes gerada

A visão geral apresenta o argumento genérico. Aqui está ele aplicado à própria lista de funcionalidades, porque uma suíte gerada falha com um formato característico — cada linha tocada, metade das decisões nunca tomadas e algumas funções nomeadas nos títulos dos testes mas nunca realmente chamadas — e cinco dos pontos abaixo são exatamente o que torna esse formato visível.

  • A cobertura de ramos e MC/DC, com o detalhe por arco e por decisão ao passar o cursor, separa a linha correu de a decisão foi exercitada. Uma suíte que só percorre o caminho feliz marca perto de 100% em linhas e perto de 50% em ramos, e é essa diferença o achado. Uma execução de testes toda verde não mostra nada disso.
  • A pontuação composta é uma média harmónica, pelo que uma métrica forte não consegue mascarar uma fraca — exatamente a aritmética de que uma suíte gerada precisa. Fazer a média do número das linhas com o dos ramos enterraria o único número que vale a pena olhar.
  • Os avisos de código morto criam uma entrada no painel Problems para qualquer função com linhas mensuráveis e cobertura zero. Uma suíte que nomeia uma função no título de um teste e nunca lá chega não falha em mais lado nenhum.
  • A cobertura de diff face a uma ref base do git estreita tudo o que ficou dito às linhas que acabaram de mudar — o código que aceitou esta tarde, e não a média de toda a vida do repositório, com a qual uma suíte grande já existente continuará alegremente a parecer saudável.
  • Copy Uncovered Lines devolve exatamente o que nunca correu, em Markdown — ou seja, algo que se cola diretamente de volta ao assistente que escreveu a suíte em primeiro lugar.

Nada disto lê um teste e o julga, e nada aqui deve ser entendido como essa pretensão: um teste sem uma única asserção continua a cobrir todas as linhas que toca. O que se mede é a parte que um revisor não consegue guardar na cabeça — que código nunca foi executado.

Único nesta extensão

A sua cobertura de linhas diz 100%. 312 bytes do seu binário nunca foram executados.

Todas as outras métricas aqui são medidas a partir do código-fonte: instrumentar o código, correr a compilação instrumentada, contar o que disparou. A cobertura de código objeto mede algo que nenhuma ferramenta baseada no código-fonte consegue alcançar — quanto do binário construído foi realmente executado, em bytes de instruções, observando o fluxo de instruções. Um compilador produz código que nenhuma linha do seu código-fonte justifica: verificações de limites de arrays, tabelas de salto de switch, despejos de registos, rotinas de execução para divisão ou vírgula flutuante. Nada disso aparece no seu código-fonte, pelo que nenhuma ferramenta baseada no código-fonte — incluindo esta extensão, para qualquer outra métrica que leia — consegue dizer se foi executado. É também a única métrica aqui que responde a isto cobre assembly?, já que o assembly escrito à mão nunca é instrumentado.

A DO-178C nomeia-o explicitamente: no nível A é exigido além do MC/DC. Nenhuma outra extensão do VS Code o lê. Como obtê-lo de um alvo embutido →

Capacidades

Funcionalidades principais

  • Uma vista Cobertura de cada ficheiro medido, a régua de visão geral e o Annotated Source; na própria margem do editor, por predefinição, só o que merece uma marca — barras MC/DC, triângulos de desde-a-última-execução, pontos de linhas editadas — com barras apenas nas linhas não cobertas ou um mapa de calor de contagens de acertos a uma definição de distância.
  • Cobertura por linha de instruções, ramos, funções, regiões, MC/DC e instanciações C++, consoante o que o ficheiro de trace fornecer.
  • Ingestão multiformato e combinação determinística de várias execuções com proveniência registada.
  • Remapeamento de caminhos — caminhos da máquina de build de CI → o seu espaço de trabalho local.
  • Cobertura diferencial — decora apenas as linhas alteradas em relação a uma referência base do git.
  • Emblemas do Explorer e um item de barra de estado global, colorido de acordo com a pontuação composta.
  • Modo de vigilância — recarregamento automático quando um ficheiro de trace muda.
  • Run Tests with Coverage — reconhece o executor de testes a partir da raiz do espaço de trabalho e executa-o com cobertura ligada, carregando o que escreve.
  • Ficheiros de cobertura remotos — uma entrada de coverageFile.paths pode ser um URL https://: o artefacto de CI é descarregado condicionalmente (ETag / Last-Modified), com os cabeçalhos que configurar em remote.headers, carregado como um ficheiro local e voltado a descarregar por temporizador com remote.refreshMinutes; quando uma descarga falha, é carregada a última cópia descarregada.
  • Variáveis nos caminhos — ${workspaceFolder}, ${workspaceFolderBasename}, ${userHome}, ${env:NAME}, ${command:id} e ${config:section.key} em todas as definições de caminho; uma variável desconhecida fica tal como foi escrita, pelo que uma gralha aparece no registo de deteção em vez de desaparecer.
  • Espaços de trabalho multi-raiz — cada pasta é detetada a partir das suas próprias definições (o seu .vscode/settings.json ou a sua entrada no .code-workspace), os seus ficheiros de cobertura fundem-se numa só execução, a vista Cobertura agrupa os ficheiros por pasta, e uma pasta adicionada ou removida recarrega a cobertura por si.
  • Mais dois gatilhos de recarregamento — uma entrada absoluta de coverageFile.paths fora do espaço de trabalho é sondada, pelo que um ficheiro que aí apareça é carregado; e watch.reloadAfterTasks nomeia tarefas (npm: test) cujo fim recarrega a cobertura, esteja ou não o modo de vigilância ligado.
  • Progresso que pode cancelar — um carregamento de dez ou mais ficheiros de cobertura, ou de 8 MB ou mais deles, e cada Generate Full HTML Report correm sob uma notificação de progresso com um botão Cancelar; cancelar deixa a execução anterior carregada.
  • A própria vista Test Coverage do VS Code — cada carregamento é também publicado através da API Test Coverage do editor (testCoverage.publish), pelo que o painel de cobertura do Test Explorer, as percentagens por ficheiro do Explorador e o botão Show Inline Coverage do editor mostram os mesmos números; Show in Test Coverage View publica a pedido e abre o painel. Com testes nomeados (TN: no lcov), a vista filtra a cobertura de um ficheiro por teste.
  • Regra de remapeamento sugerida — quando um carregamento deixa ficheiros sem correspondência (caminhos de contentor ou de CI contra um checkout local), a extensão infere a regra de pathRemap que explica o maior número deles, oferece Apply Suggested Remap no resultado do carregamento e Suggest Path Remap Rule na paleta; nada é escrito sem o clique.
  • Globs de exclusão — fuciniCoverage.ignore (vendor/**, **/*.generated.ts) retira ficheiros inteiros da execução ao carregar, pelo que cada vista, gate e exportação conta sem eles; o resultado do carregamento diz quantos e a saída nomeia cada um.
  • Não medido versus não coberto — um ficheiro que nenhum teste carregou não é pontuado como 0% nas suas costas; a barra de estado diz not measured para um deles, e unmeasured.mode pode listar esses ficheiros na vista Cobertura ou contar cada um como um ficheiro não coberto, com threshold.unmeasuredFiles para controlar quantos há.
  • O que a fusão fez, visível — com vários tracefiles carregados, cada linha de ficheiro nomeia o relatório de onde vêm os seus números, o distintivo tem contorno onde esses números sobrepuseram um relatório mais antigo, cada linha de tracefile conta quantos dos seus ficheiros foram sobrepostos ou sobrepuseram outros, e clicar numa linha de tracefile realça os seus ficheiros na árvore (coverageView.mergedMarks).

Pontuação composta e conformidade

Uma única média harmónica ponderada sobre linhas, ramos, funções, regiões, MC/DC e instanciações. Por ser uma média harmónica, uma métrica fraca não pode ser mascarada por uma perfeita. Os pesos são alinhados por predefinição com os níveis IEC 61508 / ISO 26262 / DO-178C, e o veredito COMPLIANT / NON-COMPLIANT é determinado por limiares por métrica mais um modo configurável.

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).

Análise no editor

  • CodeLens de função — % de cobertura por função, clique para saltar para a sua primeira linha não coberta.
  • Informação de ramos e MC/DC ao passar o cursor — contagens tomadas/não tomadas por ramo e detalhes de condição/vetor por decisão; indicador de margem MC/DC colorido opcional.
  • Avisos de código morto — aviso no painel Problems para funções com linhas mensuráveis e cobertura zero.
  • Navegação Next/Previous Uncovered.
  • Aviso de discrepância quando o conteúdo de um ficheiro já não se ajusta à sua execução — atualizado ao gravar ou ao mudar no disco, com a diferença exata ao passar o rato.
  • Desde a última execução — um triângulo vermelho em cada linha executada na execução anterior e não nesta, um verde para o inverso, com a régua de visão geral e as contagens ao passar o rato.
  • Buffers editados — cada marca, dica e CodeLens acompanha o texto enquanto edita, e retira-se de uma linha reescrita, onde um ponto cinzento diz porquê.
  • Modos de margem do editor — editorGutter.mode mantém a margem só com as constatações (off), põe uma barra em cada linha que nunca correu e uma âmbar onde um ramo nunca foi tomado (uncovered), ou acrescenta um tom quente a cada linha executada, tanto mais quente quanto mais vezes correu (heatmap); Choose Editor Gutter Mode... alterna a partir da paleta ou do menu da barra de estado.
  • Contagens de acertos em linha — hitCounts.inline escreve ×12 a seguir a cada linha em que começa uma instrução, ×0 incluído; Toggle Inline Hit Counts alterna-o.
  • Entradas por linha no painel Problems — problems.perLine põe um diagnóstico de informação em cada bloco de linhas que nunca correram num documento aberto (uma função morta é uma entrada, não quarenta), e opcionalmente em cada linha com um ramo nunca tomado; as entradas acompanham as suas linhas enquanto edita.
  • Tom da linha e mapa na barra de deslocamento — lineHighlight coloca um tom translúcido atrás das próprias linhas em vez de (ou além de) uma marca na margem, e overviewRuler decide sozinho a faixa na barra de deslocamento: com a margem desligada, é um mapa das lacunas do ficheiro e nada ao lado do código.
  • Qual tracefile cobriu esta linha — com vários relatórios combinados, a dica com a contagem de execuções nomeia cada um que cobriu a linha (incluindo o nome da suíte do TN: do lcov), e clicar numa linha de tracefile na vista Coverage ilumina as linhas que ele contribuiu.
  • Vermelho, âmbar e verde — o modo coverage de editorGutter.mode e lineHighlight pinta cada linha medida com as cores da escala de cores; o botão de modo da barra de estado e Alt+G passam de um modo ao seguinte.
  • As suas cores, pré-visualizadas — a escala de cores e os tons do mapa de calor (heatmap.colors, heatmap.colorsDark) são definições, e a página de definições pré-visualiza-os num editor claro e num escuro à medida que são escolhidos.
  • De que relatório vem um ficheiro — com dois relatórios a medir o mesmo código, regras de coverageFile.sources, ou Choose Coverage Source for This File..., decidem qual cada ficheiro mostra, em vez de ganhar o mais recente.

Relatórios e histórico

  • Generate Full HTML Report — um relatório auto-gerado, de várias páginas, por diretório; Open Annotated Source para um único ficheiro.
  • Histórico local opcional de execuções com uma tendência de cobertura (▲/▼), além de Compare Two History Runs e Compare with Last Run.
  • Show Worst-Covered Files / Functions e Copy Uncovered Lines (Markdown).
  • Export Fucini JSON — o modelo normalizado completo.
  • Export Coverage Report... — a mesma execução como CSV (por ficheiro ou por função), resumo em Markdown, ficheiro de rastreio LCOV, XML do Cobertura, SARIF, ou emblema SVG autónomo. Com vinte e cinco leitores e estes escritores a extensão converte entre formatos: carregue JaCoCo ou llvm-cov JSON e produza o LCOV que o Codecov, o Coveralls e o SonarQube leem, ou o XML do Cobertura que o Jenkins, o GitLab e o Azure DevOps ingerem.
  • Generate Coverage Badge — um SVG ao estilo shields escrito diretamente no espaço de trabalho (badge.outputPath, por predefinição coverage-badge.svg) para um README o incorporar com ![coverage](coverage-badge.svg) e sem serviço alojado; badge.metric escolhe linhas, ramos, MC/DC ou a pontuação composta, a cor segue os patamares de colorScale.*, e badge.autoUpdate reescreve-o após cada carregamento.
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 e Pro, funcionalidade a funcionalidade

Duas listagens, uma só base de código. Community é o nível permanentemente gratuito, e aquele em que a listagem Pro assenta após o seu período experimental de 14 dias; Pro e o período experimental são tudo, sem limites. A linha está traçada para que o nível gratuito veja sempre cada constatação e pague apenas por comodidade, prova e escala — no VS Code, Fucini Coverage: What Community Includes mostra a mesma lista com as contagens de hoje para cada limite.

CapacidadeCommunity (gratuito)Pro, e o período experimental
Todos os 25 formatos, fusão de vários ficheiros, remapeamento de caminhos✓✓
Margens, régua de visão geral, distintivos do Explorador, vista Cobertura, CodeLens, dicas✓✓
Modo de vigilância com recarregamento automático; Run Tests with Coverage✓✓
Cobertura do diff, histórico e tendência, marcas «desde a última execução»✓✓
Carregar cobertura por comando25 por dia (os carregamentos automáticos não contam)ilimitado
Comparar execuções, Check Coverage Thresholds, Open HTML Report, Export Coverage Report, Export Fucini JSON5 por semana cadailimitado
Annotated Source, no local5 por semanailimitado, mais um painel lateral persistente e Generate Full HTML Report
Export Coverage ReportCSV (por ficheiro, por função)também Markdown, LCOV, Cobertura XML, SARIF, distintivo SVG
Um ficheiro que já não corresponde à sua coberturareportado e esbatidotambém a linha, função ou soma de verificação que o provou
Mutantes sobreviventesmarcados na linha, com a quantidadetambém o que cada mutante alterou
Testes que executaram uma linhaquantostambém os seus nomes
CRAPMax CRAP da execução, CRAP em cada funçãotambém a lista ordenada Riskiest Methods
Risk hotspotsquantos, e a pior pontuaçãotambém a lista ordenada, cada um abrindo a sua função
Cobertura MC/DC, barras na margem e dica—✓
Cobertura de código-objeto pontuada e controladaapenas a sua presença é anunciada✓
Um ficheiro medido por vários relatórioso relatório mais recentetambém escolher um por ficheiro, ou combiná-los (agree / union)
Telemetria necessárianão — opcionalmente, e uma vez por máquina, Unlock Full Features troca telemetria de utilização detalhada por 30 dias de tudo o que está na coluna da direitanão

Uma semana dura sete dias a partir da primeira utilização que a abriu, e nada que apenas leia a cobertura é contabilizado. Ainda não quer uma subscrição? Um passe de 7 dias é tudo o que está na coluna da direita durante uma semana, pago uma vez, sem nada para cancelar.

VS Code e Visual Studio lado a lado

Um produto, dois editores, um leitor: o mesmo relatório dá os mesmos números, ao dígito, nos dois. O Coverage Studio para Visual Studio corre no Visual Studio 2022 e 2026 — Community, Professional e Enterprise e não usa a cobertura de código própria do Visual Studio, que em 2022 é só para o Enterprise; está incluído em todos os planos pagos, e um dispositivo com os dois editores é um lugar. Tudo acima da linha existe nos dois; abaixo dela, aquilo para que o Visual Studio não tem equivalente, e o que ali ainda está para vir.

CapacidadeVS CodeVisual Studio
Todos os 25 formatos, fusão de vários ficheiros, remapeamento de caminhos, as mesmas definições fuciniCoverage.* e .vscode/settings.json✓✓
Margens, régua de visão geral, contagens de execuções, lente por função, hovers, a vista Coverage, a barra de estado e os seus cartões✓✓
Modo de vigilância com recarga automática; Next Uncovered, Next Partly-Tested Decision; copiar como Markdown✓✓
Pontuação composta, limiares e o veredicto COMPLIANT; MC/DC; CRAP✓✓
Getting Started, em 18 idiomasum passo a passouma página em Tools → Coverage Studio
Run Tests with Coverage, Run This Test with Coverage, cobertura após cada gravação; o painel Test Coverage do próprio editor✓✓, e Collect Coverage in Test Explorer… — o painel Test Coverage é uma API do VS Code
Distintivos no Explorador✓— (o Solution Explorer não consegue decorar ficheiros)
Annotated Source, relatório HTML, exportações, Check Thresholds, Error List, histórico e tendência, cobertura de diff✓✓
Que testes executaram uma linha, excluir a partir da árvore e do editor, a perspetiva por namespace e a caixa de pesquisa, sessões de cobertura, o gráfico de tendência, a linha de base de CI✓✓, mais Run Native Project with Coverage para um projeto C++
Nível gratuito, período de teste, checkout✓— (um plano pago; a chave é encontrada numa máquina onde o VS Code está ativado)

A seguir: toda esta cobertura no Azure DevOps, numa extensão gratuita. O Azure DevOps mostra a cobertura de uma compilação só até onde o seu próprio formato chega — linhas, e ramos como percentagem. O Fucini DevOps Studio mostrará tudo o que o Coverage Studio lê: cada um destes 25 formatos, para cada linguagem, com MC/DC, condições, a pontuação composta e os gates, como um separador Coverage no pipeline que a produziu. Siga as novidades para a primeira versão.

Referência de definições

Configure na interface de definições (pesquise Fucini Coverage) ou em 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.

Uma linha que termina em Por pasta. aceita um valor ao nível da pasta num espaço de trabalho multi-raiz: cada pasta é detetada com o seu próprio .vscode/settings.json ou entrada no .code-workspace, e ${workspaceFolder} nela significa essa pasta.

Localização

DefiniçãoPredefiniçãoO que faz
languageautoFixa a interface da própria extensão (barra de estado, notificações, dicas, webviews de licença e relatório) num idioma específico, independentemente do idioma de apresentação do VS Code. auto segue o VS Code. Um de auto, en, uk, nl, de, fr, es, hr, pl, it, pt, ru, tr, he, ja, zh, hi, ko, ar. Não altera as entradas da paleta de comandos nem as etiquetas/descrições da interface de definições — o VS Code resolve-as a partir do seu idioma de apresentação.

Deteção e carregamento

DefiniçãoPredefiniçãoO que faz
coverageFile.defaultLocation""Pasta base para deteção e diálogos de seleção de ficheiros. Variáveis: ${workspaceFolder}, ${workspaceFolderBasename}, ${userHome}, ${env:NAME}, ${command:id}, ${config:section.key}. Por pasta.
coverageFile.paths[]Ficheiro(s) de rastreio a carregar & combinar, relativos à pasta base, absolutos (as mesmas variáveis acima), ou um URL http(s):// descarregado em cada carregamento — acrescente #lcov.info (ou outro nome de ficheiro) como fragmento do URL quando o próprio URL não tem extensão. Um glob * relativo pesquisa recursivamente sob a pasta base; uma entrada absoluta também pode conter um wildcard (${workspaceFolder}/build/coverage-merged/*.lcov.info, ** para qualquer profundidade), pesquisado sob as pastas que o precedem. Por pasta.
watch.enabledtrueRecarregar a cobertura quando um ficheiro de rastreio muda — ou aparece, no caso de uma entrada absoluta fora do espaço de trabalho. Por pasta.
watch.reloadAfterTasks[]Nomes de tarefas (label, ou source: name como npm: test) cujo fim recarrega a cobertura, esteja ou não watch.enabled ligado. Por pasta.
remote.headers[]Cabeçalhos Name: value enviados com cada descarga de URL; as variáveis expandem-se, pelo que Authorization: Bearer ${env:CI_TOKEN} mantém o token fora do settings.json. Por pasta.
remote.refreshMinutes0Voltar a descarregar as entradas URL a cada N minutos (GET condicional; 0 = só ao carregar). Por pasta.
baseline.report""O relatório com que comparar cada execução carregada — o do ramo main, tal como o servidor de build o publica: um URL, descarregado com remote.headers e guardado em cache como o é um URL de coverageFile.paths, ou o caminho de um artefacto descarregado, absoluto ou relativo à pasta. O cartão da barra de estado diz então onde esta execução está em relação a ele, e Compare with CI Baseline lista os ficheiros que mudaram. Vazio: sem baseline. Por pasta.

Escala de cores e distintivos

coverage: 83%

DefiniçãoPredefiniçãoO que faz
colorScale.presetdefaultcolorblind troca vermelho, âmbar e verde por vermelhão, laranja e azul (Okabe–Ito) em tudo o que colore a cobertura; as cores que alterou abaixo têm prioridade.
colorScale.lowColor#8b1a1aExtremo inferior do gradiente de cobertura.
colorScale.midColor#b8860bCor central do gradiente.
colorScale.highColor#228b22Extremo superior (100%) do gradiente.
colorScale.lowThreshold80% em que o distintivo passa de baixo para médio.
colorScale.highThreshold90% em que o distintivo passa de médio para alto (e centro do gradiente).
heatmap.colors["#fff1a8", …, "#a63603"]Os cinco tons do mapa de calor num tema claro, da linha que correu menos vezes à que correu mais.
heatmap.colorsDark["#6e5f22", …, "#ff6a00"]O mesmo para um tema escuro, onde mais claro significa mais.

Pontuação composta (média harmónica ponderada)

DefiniçãoPredefiniçãoO que faz
whmWeights.lines1Peso da cobertura de linhas/instruções.
whmWeights.functions1Peso da cobertura de funções.
whmWeights.regions1.5Peso da cobertura de regiões (llvm-cov).
whmWeights.branches2Peso da cobertura de ramos.
whmWeights.mcdc4Peso da cobertura MC/DC. 0 exclui-a.
whmWeights.instantiations0.5Peso das instanciações de modelos C++ (llvm-cov).

Limiares e conformidade

DefiniçãoPredefiniçãoO que faz
threshold.profilestandardstandard define as predefinições abaixo; safety coloca todos os gates em 100, exceto a pontuação de mutação; custom mantém o que tiver definido. No perfil predefinido, as métricas de segurança ficam sem gate — um projeto que não mede MC/DC não é reprovado por isso.
threshold.statement80% mínima de instruções. 0 desativa a verificação.
threshold.branch70% mínima de ramos.
threshold.mcdc0% mínima de MC/DC.
threshold.functions80% mínima de funções.
threshold.regions75% mínima de regiões (llvm-cov).
threshold.instantiations0% mínima de instanciações (llvm-cov); projetos apenas em C são ignorados.
threshold.conditions0% mínima de condições.
threshold.functionCalls0% mínima de chamadas de funções, quando o relatório a traz.
threshold.objectCode0% mínima de código-objeto, quando o relatório a traz.
threshold.mutation0Pontuação de mutação mínima, quando está carregado um relatório de mutação.
threshold.weighted75Pontuação composta mínima.
compliance.modestrictstrict | whm | both | either.
compliance.diagnosticsfalseUm erro em Problemas por cada limiar não atingido, no tracefile.
threshold.unmeasuredFiles-1Número máximo de ficheiros não medidos (requer unmeasured.mode definido como list ou count). -1 não verifica; 0 falha ao primeiro ficheiro que nenhum teste carregou.
problems.perLineoffoff | uncovered | uncoveredAndPartial: uma entrada de informação (um sublinhado ondulado no editor) por bloco de linhas não cobertas consecutivas em cada documento aberto, opcionalmente mais uma por linha com um ramo nunca tomado. Independente de problems.enabled. Por pasta.

Diff, remapeamento e relatórios

DefiniçãoPredefiniçãoO que faz
pathRemap[]Reescritas de caminhos {from,to}, por ordem; to pode usar ${workspaceRoot}, que tenta primeiro a pasta do próprio ficheiro de rastreio e depois cada uma das outras pastas do espaço de trabalho. Quando um carregamento deixa ficheiros sem correspondência, o resultado do carregamento oferece Apply Suggested Remap com a regra inferida dos caminhos sem correspondência (também Suggest Path Remap Rule na paleta); nada é escrito até clicar. Por pasta.
ignore[]Padrões glob de ficheiros inteiros a deixar fora da execução (vendor/**, **/*.generated.ts, build/**) — retirados ao carregar, pelo que cada vista, gate e exportação conta sem eles. Comparados com o caminho relativo ao espaço de trabalho e com o absoluto; um padrão sem / corresponde a um nome a qualquer profundidade, como no .gitignore. Por pasta.
ignore.generatedtrueDeixa os ficheiros .NET gerados fora de cada total, página e exportação — *.Designer.cs, *.g.cs, *.g.i.cs, *.generated.cs, *.razor.g.cs, *.AssemblyInfo.cs, GlobalUsings.g.cs, Migrations/** e obj/** — antes de ignore ser aplicado. Desliga-se para um projeto que testa as suas migrações. Por pasta.
ignore.namespaces[]Namespaces a deixar fora de cada total e de cada página, para fontes .NET: um ficheiro cuja declaração de namespace corresponde a um destes não é contado. Um prefixo com * como caráter universal — Acme.Generated, Acme.*.Migrations, *Tests. Por pasta.
ignore.attributes["ExcludeFromCodeCoverage"]Atributos que tiram da contagem uma classe, um método ou uma propriedade .NET, lidos a partir da fonte: o membro por baixo de um destes é excluído como LCOV_EXCL_START/STOP o excluiriam, seja qual for a ferramenta que escreveu o relatório. Nomes com ou sem o sufixo Attribute, com ou sem namespace; acrescente GeneratedCode, Obsolete ou os seus. Por pasta.
testRun.perTestfalseRun Tests with Coverage corre uma receita dotnet test uma classe de testes de cada vez e marca cada relatório com a sua classe, para que o hover, o CodeLens e Show Tests That Ran This Line possam dizer que testes executaram uma linha — mais lento, e só para .NET, cujo relatório Cobertura não o sabe dizer por si. Por pasta.
testRun.onSavefalseGuardar um ficheiro de código corre os testes que o cobrem, com cobertura, um instante depois de guardar: numa solução .NET só os projetos de teste que referenciam o projeto do ficheiro guardado, um dotnet test cada; qualquer outro executor a sua receita inteira. Vários guardares são uma só execução; uma execução já a decorrer não é interrompida. Por pasta.
testRun.skipWhenTestsFailfalseRun Tests with Coverage deixa a cobertura no ecrã tal como estava quando o executor termina com uma falha, e di-lo no painel Output — uma execução a vermelho não pinta de vermelho um ficheiro verde. Por pasta.
unmeasured.modeoffoff | list | count: o que fazer com os ficheiros do espaço de trabalho do tipo da execução que nenhum teste carregou (ver Não medido versus não coberto). list nomeia-os na vista Cobertura e no resultado do carregamento; count pontua ainda cada um como um ficheiro não coberto com as suas linhas de código. Alterá-lo recarrega.
unmeasured.exclude["**/*.h", "**/*.hpp", "**/*.hh", "**/*.inl", "**/*.d.ts"]Ficheiros nunca considerados não medidos, na sintaxe glob de ignore — por predefinição, ficheiros só de cabeçalhos e só de declarações. Por pasta.
hotspots.crapThreshold30Uma função com esta pontuação CRAP ou mais é um risk hotspot, listado sob a árvore da vista Coverage, do pior para o melhor — 30 é o valor que os autores da métrica propuseram. Só os relatórios que trazem a complexidade ciclomática têm algum. Por pasta.
hotspots.complexityThreshold0Uma função assim complexa ou mais é também um hotspot, seja qual for a sua cobertura; 0 desliga-o. Por pasta.
gitDiff.enabledfalseLimitar a cobertura às linhas alteradas face a uma referência base. Por pasta.
gitDiff.baseReforigin/masterReferência base do Git para a cobertura do diff. Por pasta.
externalHtmlReport.dir""Ler um diretório HTML llvm-cov show já gerado para Annotated Source. Por pasta.
htmlReport.outputDir""Diretório de saída para Generate Full HTML Report. Por pasta.
badge.outputPathcoverage-badge.svgOnde Generate Coverage Badge escreve o SVG — relativo à pasta do espaço de trabalho ou absoluto, com as mesmas variáveis de coverageFile.defaultLocation; as pastas-mãe são criadas. Por pasta.
badge.metriclineslines | branches | mcdc | weighted: o número global da execução no emblema (weighted é a pontuação composta da barra de estado). Sem dados para ele → um n/a cinzento. Por pasta.
badge.autoUpdatefalseReescrever o emblema após cada carregamento bem-sucedido, silenciosamente (registado como [FUCINI_BADGE]). Por pasta.

Visualização e análise

DefiniçãoPredefiniçãoO que faz
mcdcGutter.enabledfalseMargem MC/DC colorida.
statusBar.enabledtrueMostrar itens da barra de estado para a execução e por ficheiro.
statusBar.showLaunchertrueLançador de menu rápido sempre disponível.
statusBar.showModeToggletrueUm botão da barra de estado que indica o modo da margem; um clique fá-lo avançar um passo.
codeLens.enabledtrueCodeLens de cobertura por função.
deadCode.enabledtrueAvisar sobre funções sem cobertura.
staleWarning.enabledtrueMarcar ficheiros cujo conteúdo já não corresponde à sua execução.
explorerBadges.enabledfalseDistintivos de cobertura e dica junto aos ficheiros no Explorador.
coverageFile.rememberPickstrueEscrever cada ficheiro escolhido em coverageFile.paths.
coverageFile.sources[]De que relatório carregado vêm os números de um ficheiro quando mais do que um o mede: regras ordenadas { "files": glob, "report": glob }, decidindo a primeira que corresponde. Com "combine": "union" (coberta onde qualquer relatório executou uma linha) ou "agree" (só onde todos o fizeram, divergências a azul-petróleo) os relatórios correspondentes são combinados. Planos pagos. Por pasta.
coverageFile.mergeStrategynewestPara os ficheiros que nenhuma regra decide: newest (ganha o relatório escrito por último) ou order (ganha a entrada posterior em coverageFile.paths, sejam quais forem as horas). Por pasta.
sinceLastRun.enabledtrueMarcas na margem nas linhas cuja cobertura mudou desde a execução anterior.
dirtyMarks.enabledtruePonto cinzento na margem nas linhas editadas desde que a execução foi carregada.
editorGutter.modeoffoff | uncovered | coverage | heatmap: nada além das constatações acima, barras apenas nas linhas não cobertas (e parcialmente cobertas), essas mais uma barra verde em cada linha coberta, ou essas mais um tom quente em cada linha executada segundo a contagem de acertos. Por pasta.
lineHighlightoffoff | uncovered | coverage | heatmap: um tom translúcido atrás da própria linha, para o que a margem marca. Uma opção própria, para que a margem possa ficar limpa enquanto as lacunas são tingidas, ou o contrário. Por pasta.
overviewRulerfollowfollow | uncovered | off: se as linhas não cobertas recebem uma faixa na régua de visão geral da barra de deslocamento. uncovered pinta-a mesmo com a margem desligada — um mapa das lacunas do ficheiro ao longo da barra de deslocamento e nada ao lado do código; off mantém as barras e remove a faixa. Por pasta.
hitCounts.inlinefalse×N a seguir a cada linha em que começa uma instrução, ×0 incluído. Por pasta.
testCoverage.publishtruePublicar cada execução carregada na própria vista Test Coverage do VS Code (painel do Test Explorer, percentagens no Explorador, Show Inline Coverage). Desligado: nenhuma entrada Fucini Coverage no Test Explorer; Show in Test Coverage View continua a publicar a pedido.
coverageView.perspectivefoldersQue árvore a vista Coverage mostra: as pastas e os ficheiros do espaço de trabalho, ou — para um relatório .NET que nomeia as suas classes (Cobertura, Coverlet, OpenCover) — namespaces, classes e métodos, cada um com os seus próprios números. O menu pendente na vista escreve isto; só é oferecido quando a execução traz nomes de classes.
coverageView.mergedMarkstrueCom vários tracefiles carregados: contornar o distintivo de tracefile de cada ficheiro cujos números sobrepuseram um relatório mais antigo, e deixar que um clique numa linha de tracefile realce os ficheiros que ela mediu. Desligado: distintivos simples, sem realce; as linhas de tracefile continuam a contar o que foi sobreposto.
excludeCommentstrueExcluir linhas de comentário, vazias & LCOV_EXCL_*, e as diretivas do pré-processador em C, C++, Objective-C, CUDA e C#.
excluded.includeInTotalsfalseContar as linhas excluídas nos totais.

Histórico

DefiniçãoPredefiniçãoO que faz
history.enabledfalseGuardar execuções localmente para tendência e comparação.
history.retention20Número máximo de execuções guardadas.

Ações rápidas da barra de estado

Todas predefinidas como false exceto as duas últimas; ative para adicionar a ação correspondente ao menu rápido: quickActions.compareWithLastRun, openAnnotatedSource, openAnnotatedSourceToSide, toggleAnnotatedSource, toggleWatch, worstCoveredFiles, worstCoveredFolders, worstCoveredFunctions, nextUncovered, previousUncovered, checkThresholds, copyUncoveredLines, compareHistoryRuns, exportJson, exportReport, generateBadge, showTestCoverage, chooseGutterMode, toggleInlineHitCounts.

Telemetria

DefiniçãoPredefiniçãoO que faz
telemetry.enabledfalseTelemetria de utilização, desativada por predefinição. No nível Community, Unlock Full Features troca-a por todas as funcionalidades Pro, MC/DC incluída, durante 30 dias, uma vez por máquina; uma licença paga não é afetada. Consulte a política de privacidade para saber o que é enviado. O resumo diário e o aviso de remoção dependem ainda do próprio telemetry.telemetryLevel do VS Code; o aviso de instalação e alguns eventos pequenos, não.

Atualizações

DefiniçãoPredefiniçãoO que faz
update.checkForUpdatestrueVerificar periodicamente fucini.software e o Marketplace do VS Code e propor instalar a versão mais recente.

Licenciamento

DefiniçãoPredefiniçãoO que faz
license.key""Chave de ativação para a pré-versão de avaliação (uma cadeia FCK1.…). Associada a esta máquina/utilizador; pode ter validade e limites por funcionalidade. Consulte Avaliação e ativação.