Coverage Studio u naredbenom retku 2.2026.4 — datoteka koju su izmjerila dva pogona broji se jednom, odakle god pokrenuli naredbu
2026-10-04
Popravljeno
- Mapa iz koje pokrenete naredbu ne odlučuje što izvještaj znači. 2.2026.3 usidruje relativne putanje izvještaja u mapu u kojoj je taj izvještaj napisan — ali samo za naredbu pokrenutu negdje drugdje. Pokrenuta iz korijena stabla koje mjeri, a ondje se naredba za pokrivenost obično i pokreće, relativna se putanja i dalje razrješavala prema toj mapi, pa se datoteka koju je llvm-cov već imenovao punom putanjom brojila i drugi put: stablo od 5258 redaka čitalo se kao 5836. Sada odlučuju samo
--cwd i mjesto samog izvještaja. Isti je popravak u oba uređivača, gdje je ta mapa bila ona iz koje je pokrenut VS Code ili Visual Studio. export --format json zapisivao je izvođenje preko vaših postavki. Njegova je datoteka bila fucini-coverage.json — ime iz kojeg se postavke čitaju — pa je u uobičajeno postavljenoj mapi izvoz uništio upravo one pragove po kojima je maloprije sudio. Izvođenje se zapisuje u coverage-run.json, a export i badge odbijaju --out koji imenuje datoteku postavki. --cwd prima mapu kako god je napisali. Relativna — --cwd ., --cwd ../tree — uzimala se kako je upisana i čitala po krivim pravilima putanja: na Windowsima je javljala da se datoteka postavki, pola POSIX pola Windows, ne može pročitati, i nije pronalazila nijedan izvještaj. Ni završni razdjelnik više nije dio mape. - Zastavica koju nitko nije deklarirao nije izvještaj.
summary -o out.json uzimao je -o za izvještaj i javljao da takve datoteke nema. Kratke su samo -h i -v; -- i dalje propušta datoteku čije ime počinje crticom, a zastavica upisana prije naredbe imenuje se u pogrešci umjesto da dobije cijelu pomoć kao odgovor. check --json govori ono što govori njegov izlazni kod. Bez postavljenog praga pisao je "passed": false uz izlazni kod 0, pa je cjevovod koji je čitao JSON umjesto izlaznog koda rušio izvođenje koje je naredba propustila. passed je izlazni kod u jednoj riječi; configured je ono što kaže da praga nije ni bilo. Prazan --lines "" odbija se umjesto da tiho isključi taj prag. - Usporedba smješta polaznu vrijednost ondje gdje smješta i izvođenje.
pathRemap i korijen koji izvještaj navodi primjenjivali su se na izvođenje, ali ne i na polaznu vrijednost, pa se polazna vrijednost napisana na poslužitelju za izgradnju nije uparila ni s čim i usporedba je javljala da se ništa nije pomaknulo uz ukupan iznos koji se očito pomaknuo.
Coverage Studio u naredbenom retku 2.2026.3 — datoteka koju su izmjerila dva pogona ponovno je jedna datoteka
2026-10-04
Popravljeno
- Relativne putanje izvještaja usidrene su tamo gdje je taj izvještaj napisan. llvm-cov zapisuje punu putanju datoteke; gcovr je zapisuje relativno prema mapi za izgradnju u kojoj se nalazi njegov izvještaj. Uz oba izvještaja jednog stabla,
summary je dvaput navodio svaku datoteku koja im je bila zajednička — jednom s brojevima svakog pogona — i oba je pribrajao ukupnom iznosu, jer relativna putanja nije imala korijen prema kojem bi se razriješila i razrješavala se prema mapi u kojoj se ljuska u tom trenutku nalazila. Stablo od 5258 redaka prikazivalo se kao 5836, a višak je pripadao datotekama pod putanjom koja ih ne sadrži nijednu. Svaki je izvještaj sada usidren u svojoj mapi i mapama iznad nje, do mape u kojoj naredba radi, kao što obje edicije to već čine — tako se oba sastaju kao jedan skup datoteka, bez pravila pathRemap za svaku mapu izgradnje. - Datoteka postavki koja počinje oznakom redoslijeda bajtova također je bila odbijena. Uređivač na Windowsu može je zapisati pred tekst; više se ne uzima za dio JSON-a.
- Izlaz proslijeđen čitaču koji rano prestane završava tiho.
summary proslijeđen u head ili u PowerShellov Select-Object -First umirao je s neobrađenim EPIPE i ispisom stoga. To što čitač zatvara cjevovod njegov je vlastiti izbor, a ne pogreška naredbe: ona sada završava s izlaznim kodom koji je dosegla.
Coverage Studio u naredbenom retku 2.2026.1 — datoteka postavki s uzorcima se čita
2026-10-04
Popravljeno
- Datoteka postavki s uzorcima bila je odbijena. S
**/*.lcov.info u jednoj putanji u fuciniCoverage.coverageFile.paths i **/coverage.json u sljedećoj, svaka je naredba završavala porukom is not JSON: ono što je između njih shvaćalo se kao komentar. Datoteka se sada čita onako kako je čitaju uređivači, uključujući komentar nakon vrijednosti i zarez prije zatvorene zagrade.
Coverage Studio u naredbenom retku 2.2026.0 — fucini-coverage, prva verzija
2026-10-04
Dodano
- Čitač u naredbenom retku, besplatno.
npm install -g fucini-coverage — isti čitač kao u oba izdanja, za mjesta gdje uređivača nema. Jedan paket, jedno ponašanje na Windowsu, Linuxu, WSL-u i macOS-u, Node 20 ili noviji.
check, vrata. Izlazni kod 1 ispod praga za retke, grane, funkcije, MC/DC, uvjete, regije, mutacije ili ponderirani rezultat, iz postavki ili iz naredbenog retka; --new-code 80 --base-ref origin/main sudi retke koje je grana promijenila, iz git diff koji alat sam pokreće; --require-reasons ne propušta oznaku isključenja bez razloga.
summary, export, report, badge, compare. Ukupni brojevi i svaka datoteka; izvođenje kao CSV po datoteci ili po funkciji, Markdown, LCOV, Cobertura, SARIF, popis isključenja, značka ili Fucinijev JSON; višestranični HTML izvještaj; značka obojena prema ljestvici iz postavki; ovo izvođenje u odnosu na osnovnu liniju, regresije prve, s --fail-on-regression za provjeru pull requesta.
mcp, za AI agenta. Šest alata iz izdanja, posluženih nad izvođenjem na 127.0.0.1 iza tokena, s ispisanim unosom za klijentov mcp.json.
- Datoteka postavki izdanja za Visual Studio.
fucini-coverage.json uz kod, s ključevima fuciniCoverage.* iz postavki VS Codea; ispod nje .vscode/settings.json. Izvještaji se imenuju kao datoteke, mape ili uzorci, .gz se raspakira, a svaka naredba sama sebe dokumentira: fucini-coverage help <command>.
Coverage Studio for VS Code 2.2026.2 — probno razdoblje počinje odgovorom poslužitelja licenci
2026-10-04
Promijenjeno
- Probno razdoblje nove instalacije počinje prvim odgovorom poslužitelja licenci. Dok proširenje jednom ne dosegne fucini.software, radi na razini Community i kaže zašto. Instalacija koja je već u probnom razdoblju ili ima licencu ne primjećuje ništa.
- Nema probnog razdoblja u razvojnom kontejneru ili Codespaceu. Ondje proširenje počinje na razini Community; sve otključava kôd pretplate, ključ ili 7-dnevna propusnica.
- Evidencija korištenja poznaje računalo po drugom hashu, od vlastitog identifikatora operacijskog sustava. Šalje se samo hash; vidi pravila privatnosti.
Coverage Studio za Visual Studio 2.2026.1 — sitni ispravci
2026-10-04
Popravljeno
- Sitni ispravci. Izdanje za održavanje: sitni ispravci ispod haube i ništa što mijenja ono što vidite ili način korištenja.
Coverage Studio for VS Code 2.2026.1 — sitni ispravci
2026-10-04
Popravljeno
- Sitni ispravci. Izdanje za održavanje: sitni ispravci ispod haube i ništa što mijenja ono što vidite ili način korištenja.
Coverage Studio za Visual Studio 2.2026.0 — pokrivenost sa zaslona, za AI agente
2026-10-04
Dodano
- Pokrivenost sa zaslona, za AI agente. Agent koji piše testove mogao ih je pokrenuti i pročitati postotak; nije mogao pitati što Visual Studio zna. Na to odgovara šest alata, riječima po kojima agent može postupiti:
coverage_summary, coverage_gaps, tests_for_line, patch_coverage, coverage_delta i test_run_command. Agent koji govori MCP dolazi do njih preko poslužitelja koji Visual Studio pokreće kad je fuciniCoverage.mcp.enabled uključen — zadano isključen, samo na 127.0.0.1, iza vašeg vlastitog tokena i zatvoren za web-stranice. Copy MCP Server Configuration stavlja unos za klijenta u međuspremnik. - Isti brojevi kao na zaslonu. Alati odgovaraju iz učitanog pokretanja — ista isključenja, isto premapiranje — pa agent kojem je rečeno da pokrije praznine funkcije i recenzent koji gleda marginu govore o istim retcima.
Promijenjeno
- Plan ključa u Visual Studiju odlučuje ono što odlučuje u VS Codeu. Plan koji izostavlja neku značajku — MC/DC, HTML izvještaj, imena testova koji su izvršili redak — izostavljao ju je u VS Codeu, a ovdje ne. Oba izdanja sada čitaju istu tablicu: značajka koju plan ne uključuje uskraćena je, a njezina naredba to kaže.
- Najniža verzija koju traži licencni poslužitelj vrijedi i ovdje. Oba izdanja nose istu verziju od 2.2026.0 nadalje, pa build stariji od tog minimuma traži ažuriranje, kao što to čini izdanje za VS Code.
Coverage Studio for VS Code 2.2026.0 — pokrivenost sa zaslona, za AI agente
2026-10-04
Dodano
- Pokrivenost sa zaslona, za AI agente. Agent koji piše testove mogao ih je pokrenuti i pročitati postotak; nije mogao pitati što uređivač zna. Na to odgovara šest alata, riječima po kojima agent može postupiti:
coverage_summary, coverage_gaps, tests_for_line, patch_coverage, coverage_delta i test_run_command. Vlastiti agent VS Codea ima ih kao alate jezičnog modela, bez ikakvog postavljanja. Svaki drugi agent koji govori MCP dolazi do njih preko poslužitelja koji proširenje pokreće kad je fuciniCoverage.mcp.enabled uključen — zadano isključen, samo na 127.0.0.1, iza vašeg vlastitog tokena i zatvoren za web-stranice. Copy MCP Server Configuration stavlja unos za klijenta u međuspremnik. - Isti brojevi kao na zaslonu. Alati odgovaraju iz učitanog pokretanja — ista isključenja, isto premapiranje — pa agent kojem je rečeno da pokrije praznine funkcije i recenzent koji gleda marginu govore o istim retcima.
Coverage Studio za Visual Studio 1.2026.22 — datoteka koju su izmjerila dva pogona jedna je datoteka
2026-10-04
Popravljeno
- Datoteka koju su izmjerila dva pogona jedna je datoteka. llvm-cov zapisuje punu putanju datoteke; gcovr je zapisuje relativno prema mapi za izgradnju u kojoj se nalazi njegov izvještaj. Relativna se putanja usidruje u vlastitu mapu izvještaja i mape iznad nje — ali prije toga razrješivač je pitao postoji li putanja onakva kakva jest, a na to pitanje odgovara mapa iz koje je pokrenut sam Visual Studio. Ako je ta mapa sadržavala datoteku, putanja je ostala relativna: datoteka je imala dva imena, bila je dvaput navedena u prozoru Coverage i dvaput brojana u ukupnim iznosima. Stablo od 5258 redaka čitalo se kao 5836. Putanja koja ne imenuje nijedno vlastito mjesto više se uopće ne ispituje; usidruje se ondje gdje je izvještaj napisan, i redak to kaže.
Coverage Studio za VS Code 1.2026.23 — datoteka koju su izmjerila dva pogona jedna je datoteka, a odabrani način rubnog stupca ostaje izvan vaših postavki
2026-10-04
Popravljeno
- Datoteka koju su izmjerila dva pogona jedna je datoteka. llvm-cov zapisuje punu putanju datoteke; gcovr je zapisuje relativno prema mapi za izgradnju u kojoj se nalazi njegov izvještaj. Relativna se putanja usidruje u vlastitu mapu izvještaja i mape iznad nje — ali prije toga razrješivač je pitao postoji li putanja onakva kakva jest, a na to pitanje odgovara mapa iz koje je pokrenut extension host, što je nakon
code . korijen vašeg projekta. Putanja je tada ostala relativna: datoteka je imala dva imena, bila je dvaput navedena u prikazu Coverage i dvaput brojana u ukupnim iznosima. Stablo od 5258 redaka čitalo se kao 5836. Putanja koja ne imenuje nijedno vlastito mjesto više se uopće ne ispituje; usidruje se ondje gdje je izvještaj napisan, i redak to kaže. - Način rubnog stupca koji odaberete vrijedi za sesiju, a vaše postavke ostaju onakve kakvima ste ih napisali. Odabir načina u statusnoj traci, u biraču ili putem Toggle Coverage Painting upisivao ga je u
settings.json — datoteku koja je u mnogim projektima pod kontrolom verzija, a mijenjao ju je gumb predviđen za pritiskanje dvaput u minuti. Odabir sada živi za sesiju, a način koji ste upisali u svoje postavke i dalje pobjeđuje kad se prozor otvori.
Coverage Studio za Visual Studio 1.2026.21 — bi li test primijetio? Mutacijsko pokretanje na kursoru
2026-10-03
Dodano
- Run Mutation Tests Here. Pokrivenost kaže da je redak izvršen; alat za mutacije kaže bi li test primijetio da je pogrešan. Funkcija u kojoj je kursor — ili označeni retci, ili datoteka — ono je što se pokretaču iz mape kaže da mutira, a njegov se izvještaj učitava uz pokrivenost na zaslonu: Stryker.NET za C#, StrykerJS za JavaScript i TypeScript, PIT s Mavenom za Javu. Mutacijsko pokretanje cijelog projekta traje sat; jedne funkcije minutu.
Coverage Studio for VS Code 1.2026.22 — bi li test primijetio? Mutacijsko pokretanje na kursoru
2026-10-03
Dodano
- Run Mutation Tests Here. Pokrivenost kaže da je redak izvršen; alat za mutacije kaže bi li test primijetio da je pogrešan. Funkcija u kojoj je kursor — ili označeni retci, ili datoteka — ono je što se pokretaču iz mape kaže da mutira, a njegov se izvještaj učitava uz pokrivenost na zaslonu: Stryker.NET za C#, StrykerJS za JavaScript i TypeScript, PIT s Mavenom za Javu. Mutacijsko pokretanje cijelog projekta traje sat; jedne funkcije minutu.
Coverage Studio za Visual Studio 1.2026.20 — sama aplikacija, s pokrivenošću
2026-10-03
Dodano
- Run App with Coverage… mjeri ono do čega dolazi čovjek, a ne samo ono što rade testovi: .NET aplikacija iz mape pokreće se pod Microsoftovim
dotnet-coverage, u vlastitoj konzoli, i radi dok se ne zatvori. Ono kroz što se prošlo zatim se učitava kao svako pokretanje, a u sesiji pokrivenosti dodaje onome što su izvršili testovi. Potrebno je dotnet tool install --global dotnet-coverage.
Coverage Studio for VS Code 1.2026.21 — sama aplikacija, s pokrivenošću
2026-10-03
Dodano
- Run App with Coverage… mjeri ono do čega dolazi čovjek, a ne samo ono što rade testovi: .NET aplikacija iz mape pokreće se pod Microsoftovim
dotnet-coverage, u vlastitoj konzoli, i radi dok se ne zatvori. Ono kroz što se prošlo zatim se učitava kao svako pokretanje, a u sesiji pokrivenosti dodaje onome što su izvršili testovi. Potrebno je dotnet tool install --global dotnet-coverage.
Coverage Studio za Visual Studio 1.2026.19 — zip artefakti s GitHuba i GitLaba
2026-10-03
Dodano
- CI referenca iz zip artefakta. GitHub i GitLab objavljuju artefakt kao arhivu. Gdje
baseline.report imenuje arhivu — URL ili zip na disku — ona se otvara i izvještaj u njoj zadržava: član naveden iza znaka # (ci/artifact.zip#coverage/lcov.info), inače jedina datoteka arhive, inače njezina jedina datoteka koja izgleda kao izvještaj.
Coverage Studio for VS Code 1.2026.20 — zip artefakti s GitHuba i GitLaba
2026-10-03
Dodano
- Zip artefakti s GitHuba i GitLaba. CI objavljuje artefakt, a artefakt je arhiva. Dohvaćeni zip sada se otvara i izvještaj u njemu zadržava — član naveden iza znaka
# u URL-u (…/zip#coverage/lcov.info), inače jedina datoteka arhive, inače njezina jedina datoteka koja izgleda kao izvještaj. Za URL u coverageFile.paths, za baseline.report i za referencu koja je zip na disku.
Popravljeno
- Datoteke Cobertura reference nisu se pronalazile pod vlastitim
<source> izvještaja. Usporedba je govorila 0 file(s) moved pokraj ukupnog zbroja koji se pomaknuo. Sada se koristi korijen koji izvještaj imenuje, kao i za izvještaj koji se učitava.
Coverage Studio za Visual Studio 1.2026.18 — novi kod po autoru i po datumu
2026-10-03
Dodano
- Novi kod po autoru i po datumu. Novi kod bili su retci izmijenjeni u odnosu na git ref. Dvije postavke pitaju ono što ref ne može:
fuciniCoverage.gitDiff.author — retke koje je napisala jedna osoba — i fuciniCoverage.gitDiff.since — retke napisane od određenog dana. Obje se čitaju iz git blame i vrijede za pokrivenost razlike i za prag za novi kod.
Coverage Studio for VS Code 1.2026.19 — novi kod po autoru i po datumu
2026-10-03
Dodano
- Novi kod po autoru i po datumu. Novi kod bili su retci izmijenjeni u odnosu na git ref. Dvije postavke pitaju ono što ref ne može:
fuciniCoverage.gitDiff.author — retke koje je napisala jedna osoba — i fuciniCoverage.gitDiff.since — retke napisane od određenog dana. Obje se čitaju iz git blame i vrijede za pokrivenost razlike i za prag za novi kod.
Coverage Studio za Visual Studio 1.2026.17 — jedan test s pokrivenošću, u Gou i Rustu
2026-10-02
Dodano
- Run This Test with Coverage čita Go i Rust. U Go datoteci
func TestXxx na kursoru pokreće se sam, u vlastitom paketu i po točnom imenu — go test ./pkg/calc -run "^TestTotal$". U Rust datoteci funkcija #[test] pokreće se po svojoj putanji u crateu, uz --exact; u mod bloku testovi tog modula; integracijski test pod tests/ u vlastitoj binarnoj datoteci.
Coverage Studio for VS Code 1.2026.18 — jedan test s pokrivenošću, u Gou i Rustu
2026-10-02
Dodano
- Run This Test with Coverage čita Go i Rust. U Go datoteci
func TestXxx na kursoru pokreće se sam, u vlastitom paketu i po točnom imenu — go test ./pkg/calc -run "^TestTotal$". U Rust datoteci funkcija #[test] pokreće se po svojoj putanji u crateu, uz --exact; u mod bloku testovi tog modula; integracijski test pod tests/ u vlastitoj binarnoj datoteci.
Coverage Studio za Visual Studio 1.2026.16 — pokrivenost uvjeta iz GCC-a 14, redak po redak
2026-10-02
Dodano
- Pokrivenost uvjeta iz GCC-a 14, redak po redak.
-fcondition-coverage se čitao kao dva brojača po datoteci; svaki se uvjet sada označava na svojem retku i imenuje u opisu pri prelasku mišem — uvjet 1 nikad istinit, uvjet 0 nikad ni u jednom smjeru — iz gcovova JSON-a i iz njegova tekstnog ispisa. threshold.conditions mu postavlja prag, Copy Coverage Summary ima stupac Conditions, badge.metric prihvaća conditions, a pretraživanje prihvaća conditions < 80.
Popravljeno
- Broj grana funkcije brojao je i ishode njezinih uvjeta.
branches 8/12 gdje je alat rekao 4 od 6. Uvjeti se ondje izostavljaju, kao i u brojevima datoteke i pokretanja.
Coverage Studio for VS Code 1.2026.17 — pokrivenost uvjeta iz GCC-a 14, redak po redak
2026-10-02
Dodano
- Pokrivenost uvjeta iz GCC-a 14, redak po redak.
-fcondition-coverage se čitao kao dva brojača po datoteci; svaki se uvjet sada označava na svojem retku i imenuje u opisu pri prelasku mišem — uvjet 1 nikad istinit, uvjet 0 nikad ni u jednom smjeru — iz gcovova JSON-a i iz njegova tekstnog ispisa. threshold.conditions mu postavlja prag, Copy Coverage Summary ima stupac Conditions, badge.metric prihvaća conditions, a pretraživanje prihvaća conditions < 80.
Popravljeno
- Broj grana funkcije brojao je i ishode njezinih uvjeta.
branches 8/12 gdje je alat rekao 4 od 6. Uvjeti se ondje izostavljaju, kao i u brojevima datoteke i pokretanja.
Coverage Studio za Visual Studio 1.2026.15 — prikaz Coverage prati uređivač
2026-10-02
Dodano
- Prikaz Coverage prati uređivač. Datoteka koju gledate istaknuta je u stablu, mape iznad nje se otvaraju, a njezin se redak pomiče u vidno polje.
fuciniCoverage.coverageView.followActiveEditor to isključuje.
Coverage Studio for VS Code 1.2026.16 — prikaz Coverage prati uređivač
2026-10-02
Dodano
- Prikaz Coverage prati uređivač. Datoteka koju gledate istaknuta je u stablu, mape iznad nje se otvaraju, a njezin se redak pomiče u vidno polje.
fuciniCoverage.coverageView.followActiveEditor to isključuje.
Coverage Studio za Visual Studio 1.2026.14 — oznake isključenja samo za grane i pokrivenost grana u .NET izvještajima
2026-10-02
Dodano
- Oznake isključenja samo za grane i gcovr oznake.
LCOV_EXCL_BR_LINE te LCOV_EXCL_BR_START … LCOV_EXCL_BR_STOP izuzimaju iz brojanja grane na svojim retcima, a retke ostavljaju u njemu; LCOV_EXCL_EXCEPTION_BR_LINE izuzima samo krakove do kojih dolazi iznimka. Svaka se oznaka čita i pod gcovrovim prefiksima: GCOVR_EXCL_LINE, GCOVR_EXCL_START, GCOV_EXCL_BR_LINE i ostali.
Popravljeno
- .NET izvještaj nije prikazivao pokrivenost grana. Coverlet i
dotnet-coverage zapisuju atribut branch Cobertura retka kao True, a čitao se samo true malim slovima — pa je svaka odluka u takvom izvještaju odbačena. Sada se čitaju oba načina pisanja. Brojevi se pomiču: pokrivenost grana .NET projekta pojavljuje se ondje gdje je nije bilo, a s njom i njegov rezultat. - Cobertura izvještaj spojen iz više stabala pronalazio je samo datoteke prvog stabla. Takav izvještaj imenuje jedan
<source> po stablu; sada se isprobava svaki, redoslijedom iz izvještaja.
Coverage Studio for VS Code 1.2026.15 — oznake isključenja samo za grane i pokrivenost grana u .NET izvještajima
2026-10-02
Dodano
- Oznake isključenja samo za grane i gcovr oznake.
LCOV_EXCL_BR_LINE te LCOV_EXCL_BR_START … LCOV_EXCL_BR_STOP izuzimaju iz brojanja grane na svojim retcima, a retke ostavljaju u njemu; LCOV_EXCL_EXCEPTION_BR_LINE izuzima samo krakove do kojih dolazi iznimka. Svaka se oznaka čita i pod gcovrovim prefiksima: GCOVR_EXCL_LINE, GCOVR_EXCL_START, GCOV_EXCL_BR_LINE i ostali.
Popravljeno
- .NET izvještaj nije prikazivao pokrivenost grana. Coverlet i
dotnet-coverage zapisuju atribut branch Cobertura retka kao True, a čitao se samo true malim slovima — pa je svaka odluka u takvom izvještaju odbačena. Sada se čitaju oba načina pisanja. Brojevi se pomiču: pokrivenost grana .NET projekta pojavljuje se ondje gdje je nije bilo, a s njom i njegov rezultat. - Cobertura izvještaj spojen iz više stabala pronalazio je samo datoteke prvog stabla. Takav izvještaj imenuje jedan
<source> po stablu; sada se isprobava svaki, redoslijedom iz izvještaja.
Coverage Studio za Visual Studio 1.2026.13 — najmanje testova koji i dalje izvršavaju svaki redak
2026-10-01
Dodano
- Show Minimal Test Set… pronalazi najmanji broj testova koji i dalje izvršavaju svaki redak koji izvršava cijeli skup, a ispod njih navodi testove koji ne dodaju nijedan vlastiti redak. Za brzo pokretanje prije commita i za onoga tko prorjeđuje skup — uz podsjetnik da suvišan po retcima nije suvišan po onome što test provjerava.
Coverage Studio for VS Code 1.2026.14 — najmanje testova koji i dalje izvršavaju svaki redak
2026-10-01
Dodano
- Show Minimal Test Set… pronalazi najmanji broj testova koji i dalje izvršavaju svaki redak koji izvršava cijeli skup, a ispod njih navodi testove koji ne dodaju nijedan vlastiti redak. Za brzo pokretanje prije commita i za onoga tko prorjeđuje skup — uz podsjetnik da suvišan po retcima nije suvišan po onome što test provjerava.
Coverage Studio za Visual Studio 1.2026.12 — isključenja koja kažu zašto
2026-10-01
Dodano
- Obrazložena isključenja. Kod izuzet iz brojanja ondje gdje je napisan može reći zašto —
// LCOV_EXCL_LINE: defensive, unreachable by construction, [ExcludeFromCodeCoverage(Justification = "…")] — a razlozi se prijavljuju: Export Coverage Report… navodi isključenja i njihova obrazloženja kao Markdown i kao CSV. Uz fuciniCoverage.exclusions.requireReason isključenje koje ne navodi razlog upozorenje je na svojem retku i zbog njega Check Coverage Thresholds ne prolazi.
Coverage Studio for VS Code 1.2026.13 — isključenja koja kažu zašto
2026-10-01
Dodano
- Obrazložena isključenja. Kod izuzet iz brojanja ondje gdje je napisan može reći zašto —
// LCOV_EXCL_LINE: defensive, unreachable by construction, [ExcludeFromCodeCoverage(Justification = "…")] — a razlozi se prijavljuju: Export Coverage Report… navodi isključenja i njihova obrazloženja kao Markdown i kao CSV. Uz fuciniCoverage.exclusions.requireReason isključenje koje ne navodi razlog upozorenje je na svojem retku i zbog njega Check Coverage Thresholds ne prolazi.
Coverage Studio za Visual Studio 1.2026.11 — prag za novi kod i pokrivenost koja se pomaknula bez izmjene
2026-10-01
Dodano
- Prag za novi kod, uz pragove za cijelo pokretanje.
fuciniCoverage.threshold.newCode je najmanja pokrivenost redaka, u postocima, za retke izmijenjene u odnosu na gitDiff.baseRef. Check Coverage Thresholds prijavljuje njegov pad zasebnom rečenicom — New code 72.00% < 80% (18 of 25 line(s) changed against origin/main ran) — a cijelo pokretanje ostaje na zaslonu. - Show Indirect Coverage Changes… navodi retke čija se pokrivenost pomaknula iako ih nitko nije uređivao — kod koji se prestao izvršavati jer je neki test nestao ili jer se grana uzvodno sada vraća ranije. U odnosu na CI referencu gdje je
baseline.report imenuje, inače u odnosu na prethodno pokretanje.
Coverage Studio for VS Code 1.2026.12 — prag za novi kod i pokrivenost koja se pomaknula bez izmjene
2026-10-01
Dodano
- Prag za novi kod, uz pragove za cijelo pokretanje.
fuciniCoverage.threshold.newCode je najmanja pokrivenost redaka, u postocima, za retke izmijenjene u odnosu na gitDiff.baseRef. Check Coverage Thresholds prijavljuje njegov pad zasebnom rečenicom — New code 72.00% < 80% (18 of 25 line(s) changed against origin/main ran) — a cijelo pokretanje ostaje na zaslonu. - Show Indirect Coverage Changes… navodi retke čija se pokrivenost pomaknula iako ih nitko nije uređivao — kod koji se prestao izvršavati jer je neki test nestao ili jer se grana uzvodno sada vraća ranije. U odnosu na CI referencu gdje je
baseline.report imenuje, inače u odnosu na prethodno pokretanje.
Coverage Studio za Visual Studio 1.2026.10 — pokrenite samo testove kojih se tiču vaše izmjene
2026-10-01
Dodano
- Run Tests Affected by My Changes… navodi testove koji su izvršili redak koji radno stablo mijenja u odnosu na
fuciniCoverage.testImpact.baseRef (zadano HEAD), s onim koji je izvršio najviše izmjene na prvom mjestu. Odabir testa ga otvara; gdje su izvještaji došli iz pokretanja po testu (testRun.perTest), prva stavka pokreće samo te testove.
Popravljeno
testRun.skipWhenTestsFail vrijedi i nakon pokretanja. Izvještaji koje je zapisalo crveno pokretanje ostajali su na disku, gdje ih je nadzornik trenutak kasnije učitao. Sada se uklanjaju.- Kopija izvještaja pokrivenosti koju napravi TRX logger nikad se ne uzima za tracefile.
Coverage Studio for VS Code 1.2026.11 — pokrenite samo testove kojih se tiču vaše izmjene
2026-10-01
Dodano
- Run Tests Affected by My Changes… navodi testove koji su izvršili redak koji radno stablo mijenja u odnosu na
fuciniCoverage.testImpact.baseRef (zadano HEAD), s onim koji je izvršio najviše izmjene na prvom mjestu. Odabir testa ga otvara; gdje su izvještaji došli iz pokretanja po testu (testRun.perTest), prva stavka pokreće samo te testove.
Popravljeno
testRun.skipWhenTestsFail vrijedi i nakon pokretanja. Izvještaji koje je zapisalo crveno pokretanje ostajali su na disku, gdje ih je nadzornik trenutak kasnije učitao. Sada se uklanjaju.- Kopija izvještaja pokrivenosti koju napravi TRX logger nikad se ne uzima za tracefile.
Coverage Studio za Visual Studio 1.2026.9 — prolaz ili pad na oznakama i vlastite datoteke pokrivenosti koda Visual Studija
2026-09-30
Dodano
- Prolaz ili pad na oznakama. Redak koji je izvršio neuspjeli test dobiva crvenu crtu na početku, a njegov opis pri prelasku mišem imenuje neuspjele testove; Show Tests That Ran This Line kaže koji su od testova pali. Potreban je izvještaj koji kaže koji su testovi izvršili redak te datoteka rezultata pokretača testova — TRX ili JUnit XML — u mapi izvještaja ili navedena u
fuciniCoverage.testResults.paths. Run Tests with Coverage je sada traži od dotnet test. - Vlastita pokrivenost koda Visual Studija, učitana. Datoteka
.coverage koju zapisuje Analyze Code Coverage u Visual Studiju pretvara se alatom dotnet-coverage i učitava se sama: Coverage Studio gradi na ugrađenom kolektoru umjesto da se s njim natječe.
Coverage Studio for VS Code 1.2026.10 — prolaz ili pad na oznakama
2026-09-30
Dodano
- Prolaz ili pad na oznakama. Redak koji je izvršio neuspjeli test dobiva crvenu crtu na početku, a njegov opis pri prelasku mišem imenuje neuspjele testove; Show Tests That Ran This Line kaže koji su od testova pali. Potreban je izvještaj koji kaže koji su testovi izvršili redak te datoteka rezultata pokretača testova — TRX ili JUnit XML — u mapi izvještaja ili navedena u
fuciniCoverage.testResults.paths. Run Tests with Coverage je sada traži od dotnet test.
Coverage Studio za Visual Studio 1.2026.8 — ponovna učitavanja koja čuvaju vaše pretraživanje, vašu sesiju i vaše posljednje pokretanje
2026-09-30
Popravljeno
- Okvir za pretraživanje zadržava upit i fokus kad se pokrivenost ponovno učita. Svako ponovno učitavanje ga je praznilo, često dok se upit još upisivao. Upit poput
< 80% zadržava i rizične vruće točke koje mu odgovaraju. - Sesija pokrivenosti više ne broji isto pokretanje dvaput. Svako ponovno učitavanje nepromijenjenih izvještaja dodavalo ih je iznova, i svaki se brojač izvršavanja udvostručio. Sesija sada svaki skup izvještaja čuva jednom.
- CI referenca više ne zadržava učitavanje. Učitavanje se prvo iscrtava, a usporedba slijedi. Referenca se priprema jednom i čuva dok se njezin izvještaj i postavke ne promijene, a kad URL nije dostupan, koristi se prije dohvaćena kopija.
- „Od posljednjeg pokretanja“ preživljava ponovno učitavanje nepromijenjenih izvještaja. Promjena postavki ili osvježavanje činili su pokretanje na zaslonu njegovim vlastitim posljednjim pokretanjem, i svaka promjena od pokretanja prije njega nestajala je. Takvo ponovno čitanje više se ne čuva ni u povijesti.
- Jedno učitavanje odjednom. Dva ponovna učitavanja zatražena zajedno tekla su usporedno, i pobjeđivalo je sporije. Ponovna učitavanja zatražena tijekom učitavanja sada postaju jedno učitavanje nakon njega.
- CI referenca preko HTTP-a dohvaća se kao u VS Codeu. Jedan klijent, posljednja kopija sačuvana za slučaj da poslužitelj nije dostupan, a
remote.headers se šalju samo na adresu za koju su napisani — nikad preko običnog HTTP-a. - Naredba čiji posao ne uspije to i kaže. Neuspjeh u naredbi ili mjeraču vremena bio je progutan; sada je redak u prozoru Output.
- Manje posla na UI niti. Nadzornici datoteka stvaraju se u pozadini, stavke popisa Error List izračunavaju se jednom po učitavanju, a zapisnik se piše u naletima umjesto redak po redak.
- Dva prozora Visual Studija više ne oštećuju povijest pokretanja. Njezin se indeks zamjenjuje u jednom koraku pod zaključavanjem koje oba dijele, a kad se izgubi, ponovno se izrađuje iz pokretanja.
- Run Native Project with Coverage gradi vlastitu platformu projekta, a
llvm-cov i llvm-profdata uzima iz prevoditeljeva LLVM-a, kao par. - Boje upozorenja, pogreške i prolaza u prozoru Coverage prate svijetlu temu jednako kao i tamnu.
- Datoteka postavki otvorena s nespremljenim izmjenama ne prepisuje se. Stranica postavki kaže da je najprije spremite.
Promijenjeno
- Datoteka pokrivenosti koju odaberete i izvještaj koji zapiše testno pokretanje pamte se umjesto vas, a ne zapisuju se u
.vscode/settings.json. Ta se datoteka često commita, pa je testno pokretanje ostavljalo u repozitoriju izmjenu koju nitko nije tražio. Putanje koje su već u coverageFile.paths i dalje rade.
Coverage Studio for VS Code 1.2026.9 — ponovna učitavanja koja čuvaju vaše pretraživanje, vašu sesiju i vaše posljednje pokretanje
2026-09-30
Popravljeno
- Okvir za pretraživanje zadržava upit i fokus kad se pokrivenost ponovno učita. Svako ponovno učitavanje ga je praznilo, često dok se upit još upisivao. Upit poput
< 80% zadržava i rizične vruće točke koje mu odgovaraju. - Sesija pokrivenosti više ne broji isto pokretanje dvaput. Svako ponovno učitavanje nepromijenjenih izvještaja dodavalo ih je iznova, i svaki se brojač izvršavanja udvostručio. Sesija sada svaki skup izvještaja čuva jednom.
- CI referenca više ne zadržava učitavanje. Učitavanje se prvo iscrtava, a usporedba slijedi. Referenca se priprema jednom i čuva dok se njezin izvještaj i postavke ne promijene, a kad URL nije dostupan, koristi se prije dohvaćena kopija.
- Provjera promijenjenih datoteka izvještaja izvodi jedan prolaz odjednom. Na sporom mrežnom disku dva su prolaza vidjela istu promjenu i pokrivenost se učitala dvaput.
- „Od posljednjeg pokretanja“ preživljava ponovno učitavanje nepromijenjenih izvještaja. Promjena postavki ili osvježavanje činili su pokretanje na zaslonu njegovim vlastitim posljednjim pokretanjem, i svaka promjena od pokretanja prije njega nestajala je. Takvo ponovno čitanje više se ne čuva ni u povijesti.
Promijenjeno
- Datoteka pokrivenosti koju odaberete i izvještaj koji zapiše testno pokretanje pamte se umjesto vas, a ne zapisuju se u
.vscode/settings.json. Ta se datoteka često commita, pa je testno pokretanje ostavljalo u repozitoriju izmjenu koju nitko nije tražio. Putanje koje su već u coverageFile.paths i dalje rade.
Coverage Studio za Visual Studio 1.2026.7 — testna pokretanja koja pokreću točno ono što imenuju
2026-09-30
Popravljeno
- .NET rješenje s dva ili više testnih projekata više ne gubi pokrivenost svih projekata osim jednog.
dotnet test je zapisivao jedan izvještaj po projektu i svi su premještani na isti coverage/coverage.cobertura.xml, pa se učitavao samo posljednji. Takva mapa sada pokreće dotnet test jednom po testnom projektu, svaki izvještaj ide u coverage/<Project>/, a pokretanje jednog projekta zamjenjuje samo izvještaj tog projekta. - Spremanje više datoteka odjednom pokreće testove svake spremljene datoteke. Uz
testRun.onSave pokretali su se samo testovi posljednje datoteke; spremanja koja stignu dok pokretanje traje čuvaju se i pokreću zajedno nakon njega. - Run This Test with Coverage i pokretanja po testu pokreću točno ono što imenuju. .NET filtar podudarao se po podnizu:
Total je pokretao i TotalTax. Test se sada pokreće po točnom imenu, klasa po imenu iza kojeg slijedi točka, a test u ugniježđenoj klasi se pronalazi (Outer+Inner). - Pokreće se jest ili vitest test čiji naslov sadrži
(, + ili $. Naslov je odlazio u -t, koji čita regularni izraz, pa takav test nije odgovarao ničemu i ništa se nije pokretalo. - Run This Test with Coverage čita VB i F# testne datoteke.
<Fact> iznad Public Sub te [<Fact>] iznad let ili member nikad nisu bili prepoznati. - Otkazivanje testnog pokretanja završava svaki proces koji je ono pokrenulo. Završavala se samo ljuska, a
dotnet test je iza nje radio dalje. Zatvaranje Visual Studija također otkazuje pokretanje. - Tipkanje tijekom pokretanja nakon spremanja više ne pomiče oznake. Pričvršćene su za tekst koji je pokretanje izmjerilo.
- Rješenje na mrežnom dijeljenom resursu ondje i pokreće svoje testove. Pokretanje je počinjalo u
C:\Windows, jer naredbena ljuska ne prihvaća putanju \\server\share kao svoju mapu.
Coverage Studio for VS Code 1.2026.8 — testna pokretanja koja pokreću točno ono što imenuju
2026-09-30
Popravljeno
- .NET rješenje s dva ili više testnih projekata više ne gubi pokrivenost svih projekata osim jednog.
dotnet test je zapisivao jedan izvještaj po projektu i svi su premještani na isti coverage/coverage.cobertura.xml, pa se učitavao samo posljednji. Takva mapa sada pokreće dotnet test jednom po testnom projektu, svaki izvještaj ide u coverage/<Project>/, a pokretanje jednog projekta zamjenjuje samo izvještaj tog projekta. - Spremanje više datoteka odjednom pokreće testove svake spremljene datoteke. Uz
testRun.onSave pokretali su se samo testovi posljednje datoteke; spremanja koja stignu dok pokretanje traje čuvaju se i pokreću zajedno nakon njega. - Run This Test with Coverage i pokretanja po testu pokreću točno ono što imenuju. .NET filtar podudarao se po podnizu:
Total je pokretao i TotalTax. Test se sada pokreće po točnom imenu, klasa po imenu iza kojeg slijedi točka, a test u ugniježđenoj klasi se pronalazi (Outer+Inner). - Pokreće se jest ili vitest test čiji naslov sadrži
(, + ili $. Naslov je odlazio u -t, koji čita regularni izraz, pa takav test nije odgovarao ničemu i ništa se nije pokretalo. - Naslov testa s navodnicima stiže u terminal cijeli. Naredba s
\" unutar navodnika raspadala se na prvom. - Run This Test with Coverage čita VB i F# testne datoteke.
<Fact> iznad Public Sub te [<Fact>] iznad let ili member nikad nisu bili prepoznati. - Testni zadatak koji završi a da nije pokrenuo proces više ne ostavlja Run Tests with Coverage da čeka zauvijek. Završava i kaže da pokretanje nije ništa zapisalo.
Coverage Studio za Visual Studio 1.2026.6 — koji su testovi izvršili redak, pokrivenost nakon svakog spremanja i CI referenca
2026-09-29
Dodano
- Koji su testovi izvršili ovaj redak. Gdje izvještaj to bilježi — coverage.py s
--show-contexts, praćene metode OpenCovera, lcov tracefile zapisan za svaki test — CodeLens funkcije kaže koliko ju je testova izvršilo, a Show Tests That Ran This Line ih navodi, najaktivnije prve, i otvara onaj koji odaberete. Za pokretanje dotnet test postavka testRun.perTest pokreće testove klasu po klasu, pa svaki izvještaj kaže koja ga je klasa zapisala.
- Pokrivenost nakon svakog spremanja. S
testRun.onSave spremanje izvorne datoteke pokreće testove koji je pokrivaju, s pokrivenošću, a margina to prati. U .NET rješenju pokreću se samo testni projekti koji referenciraju projekt spremljene datoteke; nekoliko spremanja zaredom jedno je pokretanje.
- Run This Test with Coverage. S kursorom u testnoj metodi, testnoj klasi ili
describe bloku, ili u testnoj datoteci, jedna naredba pokreće upravo to s pokrivenošću — dotnet test --filter, jest/vitest -t ili pytest ID čvora — i učitava ono što je zapisano. Test se čita iz teksta, pa radi za C#, VB, F#, JavaScript, TypeScript i Python bez jezičnog servisa.
- Exclude from Coverage i dva .NET filtra. Desni klik na redak stabla pokrivenosti ili Exclude This File from Coverage na otvorenoj datoteci dodaje datoteku ili mapu u
fuciniCoverage.ignore, i ona izlazi iz svih zbrojeva. ignore.namespaces izostavlja datoteke jednog imenskog prostora (*.Migrations), a ignore.attributes klasu, metodu ili svojstvo ispod atributa — zadano ExcludeFromCodeCoverage, koji OpenCover, dotCover i pretvoreni lcov ne poštuju.
- Exclude Selection from Coverage. Označite retke i odaberite radnju iz žarulje ili kontekstnog izbornika uređivača: iznad .NET klase, metode ili svojstva zapisuje
[ExcludeFromCodeCoverage] — u kratkom obliku kad datoteka već uvozi System.Diagnostics.CodeAnalysis — a drugdje LCOV_EXCL_LINE ili par LCOV_EXCL_START/STOP u komentaru samog jezika. Oznaka koja već postoji ne udvostručuje se.
- Imenski prostori, klase i metode. Za .NET izvještaj koji imenuje svoje klase — Cobertura, Coverlet, OpenCover — padajući izbornik Folders / Namespaces prikazuje isto pokretanje po imenskom prostoru, klasi i metodi, s istim poretkom i filtrom; redak metode otvara datoteku na toj metodi. Tipovi koje generira prevoditelj, poput
<>c i async automata stanja, spajaju se u klasu za koju su generirani.
- Okvir za pretraživanje iznad stabla pokrivenosti. Upišite riječi da zadržite retke čiji naziv ili putanja sadrži sve njih, ili usporedbu —
< 80%, lines >= 90, branches = 0 — da zadržite retke čiji broj je zadovoljava; oboje zajedno traži oboje. Pretražuju se i retci metoda i rizične vruće točke; Escape briše.
- Run Native Project with Coverage. Početni C++ projekt, iz izbornika Tools: ClangCL projekt ponovno se gradi s clangovom instrumentacijom pokrivenosti u
coverage/native/, pokreće, i njegov se izvještaj učitava; bilo koji drugi skup alata pokreće se pod OpenCppCoverageom gdje je instaliran, a gdje nije moguće ni jedno ni drugo, rečenica kaže što instalirati.
- Sesije pokrivenosti i trend. Start Coverage Session, i svako pokretanje učitano od tada zbraja se s prethodnima — retci, grane i funkcije jednako: ono što je izvršilo bilo koje od njih pokriveno je — pa jedinični testovi, integracijski testovi i prolazak kroz aplikaciju pokazuju što su zajedno dosegli. Ispod alatne trake pokrivenost redaka iz spremljene povijesti crta se kao trend, jedna točka po pokretanju.
- Compare Two History Runs, kao u VS Codeu: odaberite dva sačuvana pokretanja i datoteke koje su se među njima pomaknule navode se od starijeg prema novijem, bez obzira koje je odabrano prvo.
- Compare with CI Baseline.
baseline.report imenuje izvještaj koji objavljuje build vaše glavne grane — URL, dohvaćen s remote.headers, ili preuzetu datoteku — i svako se učitavanje mjeri prema njemu: kartica trake stanja kaže gdje je ovo pokretanje, a Compare with CI Baseline navodi datoteke koje su se pomaknule. Referenca prolazi isti popis isključenja kao i pokretanje, pa se zbrojevi uspoređuju pod jednakim uvjetima.
- Gdje ih naći. Nove naredbe su pod Tools > Coverage Studio i u kontekstnom izborniku uređivača; Show Tests That Ran This Line je i Ctrl+Shift+U, T, a Exclude Selection from Coverage je radnja žarulje.
Popravljeno
- Izvještaj testnog pokretanja više ne nosi vaše korisničko ime i ime računala. Microsoftov Code Coverage kolektor imenuje svoj izvještaj
<user>_<machine>_<stamp>.cobertura.xml, i to je ime stajalo u stablu i na svakoj njegovoj snimci zaslona; izvještaj se sada prije učitavanja preimenuje u coverage.cobertura.xml.
- Za generiranu datoteku pisalo je da ju je izostavio
fuciniCoverage.ignore. Svaka izostavljena datoteka sada se broji pod postavkom koja ju je izostavila — ignore, ignore.generated ili ignore.namespaces — pa je prikazano ime ono koje treba promijeniti.
- lcov tracefile zapisan za svaki test čita se kao jedan zapis po datoteci, sa zbrojenim testnim odjeljcima, kako ga čita VS Code; prije je zapis svakog testa bio zasebna datoteka.
- Zapisnik kaže što je parser izostavio. Datoteke u kojima parser nije našao ništa za instrumentiranje (
FUCINI_PARSE_030) i vlastiti opis praznina u izvještaju (FUCINI_PARSE_031, OpenCoverov MissingPdb) zapisuju se u zapisnik, kao što ih zapisuje VS Code.
- Zaglavlje s makroima više ne stoji u stablu na 100%. llvm-cov i gcov pripisuju upotrebe makroa retcima koji ga definiraju; grane i funkcije na isključenim retcima sada odlaze zajedno s retcima, a datoteka u kojoj nije ostalo ništa mjerljivo uklanja se iz pokretanja i navodi u izlazu (
FUCINI_EXCLUDE_001).
- Pet izvještaja odbijenih kao nepodržani format sada se prepoznaje. Koverov JaCoCo XML, izvještaj Stryker.NET, izvještaj NCover, stari SimpleCov resultset i SonarQube izvještaj s mnogo praznih datoteka sada se prepoznaju po onome što nose na početku. Clover ili SonarQube izvještaj čije putanje sadrže riječ
cobertura više se ne čita kao Cobertura.
- Brojevi koji se slažu s alatima koji su ih zapisali. Broj grana MC/DC builda odgovara
llvm-cov report; grane iznimaka LCOV 2 (BRDA:12,e0,1,3) se broje; llvm-cov funkcija deklarira se samo u datoteci koja je definira; Go blok koji navode dva testna binarna zbraja svoje brojače; Cobertura odluka koju prijavljuju dvije klase i JaCoCo redak naveden dvaput zadržavaju sve svoje grane, jednom.
- Sitnije. Tracefile prekinut usred pisanja više ne gubi datoteku;
gcov -t nad više .gcda datoteka daje po jednu datoteku za svaku, instancijacije predložaka čitaju se jednom, a brojači poput 1.20k iz gcov -H se zadržavaju; GNATcoverage datoteke više se ne prijavljuju sve kao promijenjene od svoje pokrivenosti; Stryker mutant na čekanju ili prekinuto PIT pokretanje više ne smanjuju rezultat.
- Ručna izmjena datoteke postavki primjenjuje se čim se spremi, kao što VS Code primjenjuje promjenu postavki.
Coverage Studio for VS Code 1.2026.7 — koji su testovi izvršili redak, pokrivenost nakon svakog spremanja i CI referenca
2026-09-29
Dodano
- Koji su testovi izvršili ovaj redak. Gdje izvještaj to bilježi — coverage.py s
--show-contexts, praćene metode OpenCovera, lcov tracefile zapisan za svaki test — CodeLens funkcije kaže koliko ju je testova izvršilo, a Show Tests That Ran This Line ih navodi, najaktivnije prve, i otvara onaj koji odaberete. Za pokretanje dotnet test postavka testRun.perTest pokreće testove klasu po klasu, pa svaki izvještaj kaže koja ga je klasa zapisala.
- Pokrivenost nakon svakog spremanja. S
testRun.onSave spremanje izvorne datoteke pokreće testove koji je pokrivaju, s pokrivenošću, a margina to prati. U .NET rješenju pokreću se samo testni projekti koji referenciraju projekt spremljene datoteke; nekoliko spremanja zaredom jedno je pokretanje.
- Run This Test with Coverage. S kursorom u testnoj metodi, testnoj klasi ili
describe bloku, ili u testnoj datoteci, jedna naredba pokreće upravo to s pokrivenošću — dotnet test --filter, jest/vitest -t ili pytest ID čvora — i učitava ono što je zapisano. Test se čita iz teksta, pa radi za C#, VB, F#, JavaScript, TypeScript i Python bez jezičnog servisa.
- Exclude from Coverage i dva .NET filtra. Desni klik na redak stabla pokrivenosti ili Exclude This File from Coverage na otvorenoj datoteci dodaje datoteku ili mapu u
fuciniCoverage.ignore, i ona izlazi iz svih zbrojeva. ignore.namespaces izostavlja datoteke jednog imenskog prostora (*.Migrations), a ignore.attributes klasu, metodu ili svojstvo ispod atributa — zadano ExcludeFromCodeCoverage, koji OpenCover, dotCover i pretvoreni lcov ne poštuju.
- Exclude Selection from Coverage. Označite retke i odaberite radnju iz žarulje ili kontekstnog izbornika uređivača: iznad .NET klase, metode ili svojstva zapisuje
[ExcludeFromCodeCoverage] — u kratkom obliku kad datoteka već uvozi System.Diagnostics.CodeAnalysis — a drugdje LCOV_EXCL_LINE ili par LCOV_EXCL_START/STOP u komentaru samog jezika. Oznaka koja već postoji ne udvostručuje se.
- Imenski prostori, klase i metode. Za .NET izvještaj koji imenuje svoje klase — Cobertura, Coverlet, OpenCover — padajući izbornik Folders / Namespaces prikazuje isto pokretanje po imenskom prostoru, klasi i metodi, s istim poretkom i filtrom; redak metode otvara datoteku na toj metodi. Tipovi koje generira prevoditelj, poput
<>c i async automata stanja, spajaju se u klasu za koju su generirani.
- Okvir za pretraživanje iznad stabla pokrivenosti. Upišite riječi da zadržite retke čiji naziv ili putanja sadrži sve njih, ili usporedbu —
< 80%, lines >= 90, branches = 0 — da zadržite retke čiji broj je zadovoljava; oboje zajedno traži oboje. Pretražuju se i retci metoda i rizične vruće točke; Escape briše.
- Sesije pokrivenosti i trend. Start Coverage Session, i svako pokretanje učitano od tada zbraja se s prethodnima — retci, grane i funkcije jednako: ono što je izvršilo bilo koje od njih pokriveno je — pa jedinični testovi, integracijski testovi i prolazak kroz aplikaciju pokazuju što su zajedno dosegli. Ispod alatne trake pokrivenost redaka iz spremljene povijesti crta se kao trend, jedna točka po pokretanju.
- Compare with CI Baseline.
baseline.report imenuje izvještaj koji objavljuje build vaše glavne grane — URL, dohvaćen s remote.headers, ili preuzetu datoteku — i svako se učitavanje mjeri prema njemu: kartica trake stanja kaže gdje je ovo pokretanje, a Compare with CI Baseline navodi datoteke koje su se pomaknule. Referenca prolazi isti popis isključenja kao i pokretanje, pa se zbrojevi uspoređuju pod jednakim uvjetima.
Popravljeno
- Izvještaj testnog pokretanja više ne nosi vaše korisničko ime i ime računala. Microsoftov Code Coverage kolektor imenuje svoj izvještaj
<user>_<machine>_<stamp>.cobertura.xml, i to je ime stajalo u stablu i na svakoj njegovoj snimci zaslona; izvještaj se sada prije učitavanja preimenuje u coverage.cobertura.xml.
- Testno pokretanje nije uspijevalo u Windowsima kad je terminal PowerShell. Navodnici oko
Code Coverage;Format=cobertura gubili su se na putu do pwsh, koji je ; čitao kao kraj naredbe; recept se sada terminalu predaje riječ po riječ i stavlja u navodnike za ljusku koju pokreće.
- Za generiranu datoteku pisalo je da ju je izostavio
fuciniCoverage.ignore. Svaka izostavljena datoteka sada se broji pod postavkom koja ju je izostavila — ignore, ignore.generated ili ignore.namespaces — pa je prikazano ime ono koje treba promijeniti.
- Zaglavlje s makroima više ne stoji u stablu na 100%. llvm-cov i gcov pripisuju upotrebe makroa retcima koji ga definiraju; grane i funkcije na isključenim retcima sada odlaze zajedno s retcima, a datoteka u kojoj nije ostalo ništa mjerljivo uklanja se iz pokretanja i navodi u izlazu (
FUCINI_EXCLUDE_001).
- Pet izvještaja odbijenih kao nepodržani format sada se prepoznaje. Koverov JaCoCo XML, izvještaj Stryker.NET, izvještaj NCover, stari SimpleCov resultset i SonarQube izvještaj s mnogo praznih datoteka sada se prepoznaju po onome što nose na početku. Clover ili SonarQube izvještaj čije putanje sadrže riječ
cobertura više se ne čita kao Cobertura.
- Brojevi koji se slažu s alatima koji su ih zapisali. Broj grana MC/DC builda odgovara
llvm-cov report; grane iznimaka LCOV 2 (BRDA:12,e0,1,3) se broje; llvm-cov funkcija deklarira se samo u datoteci koja je definira; Go blok koji navode dva testna binarna zbraja svoje brojače; Cobertura odluka koju prijavljuju dvije klase i JaCoCo redak naveden dvaput zadržavaju sve svoje grane, jednom.
- Sitnije. Tracefile prekinut usred pisanja više ne gubi datoteku;
gcov -t nad više .gcda datoteka daje po jednu datoteku za svaku, instancijacije predložaka čitaju se jednom, a brojači poput 1.20k iz gcov -H se zadržavaju; GNATcoverage datoteke više se ne prijavljuju sve kao promijenjene od svoje pokrivenosti; Stryker mutant na čekanju ili prekinuto PIT pokretanje više ne smanjuju rezultat.
Promijenjeno
- Nema više
FUCINI_ENCODING_001 pri svakom učitavanju. Izvještaj bez oznake redoslijeda bajtova čita se kao UTF-8, kako ga piše svaki alat, bez napomene o tome.
Coverage Studio za Visual Studio 1.2026.5 — nadzor ondje gdje će se izvještaj pojaviti
2026-09-28
Dodano
- Relativni unos sa zamjenskim znakom pretražuje se na bilo kojoj dubini.
*.lcov.info u coverageFile.paths pronalazi datoteku gdje god bila ispod osnovne mape, kako je VS Code oduvijek čita; ukorijenjeni unos — ${workspaceFolder}/build/coverage-merged/*.lcov.info, ** za bilo koju dubinu — gleda točno ondje gdje kaže, kao i prije.
- Nadzire se ondje gdje će se izvještaj pojaviti. Nadzor pokriva mape koje postavke imenuju, bio ondje već izvještaj ili ne: mapu ukorijenjene datoteke, mape prije zamjenskog znaka — sa svime ispod njih kad uzorak seže u podmape — i osnovnu mapu za relativni zamjenski znak. Izvještaj koji build ondje zapiše učitava se sam; zapisivanje u bilo koju drugu datoteku u tim mapama zanemaruje se.
Popravljeno
- JSON izvještaj alata llvm-cov odbijan je kao nepodržani format. Format se prepoznaje iz prvih 4096 znakova, a llvm-cov svoju oznaku
"type": "llvm.coverage.json.export" zapisuje na samom kraju; izvoz čiji prvi zapis datoteke nosi mnogo grana i ugniježđenih proširenja makroa nije u tom početku imao ništa drugo prepoznatljivo. Takav se izvještaj sada prepoznaje po svojem početku, {"data":[{"files":[, kakav nema nijedan drugi format.
- Isto za
gcov --json-format. gcov zapisuje funkcije datoteke prije njezinih redaka, a datoteka s desetak funkcija u pregledanom početku također nema nijedan unos retka; sada je prepoznaje vlastiti ključ dokumenta gcc_version.
Coverage Studio for VS Code 1.2026.6 — zamjenski znak u punoj putanji, nadzor ondje gdje će se izvještaj pojaviti
2026-09-28
Dodano
- Zamjenski znak u apsolutnom unosu
coverageFile.paths. ${workspaceFolder}/build/coverage-merged/*.lcov.info učitava svaku takvu datoteku u toj mapi, a ** znači bilo koju dubinu: pretražuju se mape prije prvog zamjenskog znaka, ostatak je uzorak ispod njih, kako izdanje za Visual Studio oduvijek čita takav unos. Prije se apsolutni unos tražio onako kako je napisan, pa onaj sa zvjezdicom nije odgovarao ničemu — a, budući da je zamjenski znak, nije se ni prijavljivao da ne odgovara ničemu. Izvještaj koji se ondje pojavi kasnije učitava nadzornik ili ispitivanje kao doslovni unos; zamjenski znak koji ne odgovara ničemu ne prijavljuje se, jer možda čeka build.
Popravljeno
- JSON izvještaj alata llvm-cov odbijan je kao nepodržani format. Format se prepoznaje iz prvih 4096 znakova, a llvm-cov svoju oznaku
"type": "llvm.coverage.json.export" zapisuje na samom kraju; izvoz čiji prvi zapis datoteke nosi mnogo grana i ugniježđenih proširenja makroa nije u tom početku imao ništa drugo prepoznatljivo. Takav se izvještaj sada prepoznaje po svojem početku, {"data":[{"files":[, kakav nema nijedan drugi format.
- Isto za
gcov --json-format. gcov zapisuje funkcije datoteke prije njezinih redaka, a datoteka s desetak funkcija u pregledanom početku također nema nijedan unos retka; sada je prepoznaje vlastiti ključ dokumenta gcc_version.
Coverage Studio za Visual Studio 1.2026.4 — dva izvještaja, jedan odgovor i zeleno gdje je pokriveno
2026-09-26
Dodano
- Odaberite ili kombinirajte izvještaje datoteke. Desnom tipkom kliknite datoteku u prozoru Coverage i odaberite Choose Coverage Source... — nudi se ondje gdje datoteku mjeri više od jednog učitanog izvještaja — ili upotrijebite Tools > Coverage Studio > Choose Coverage Source for This File...: svaki izvještaj sa svojim brojevima, zatim Combine them — agree (pokriveno samo gdje je redak izvršio svaki izvještaj: jedna baza koda, dva prevoditelja) i — union (pokriveno gdje je to učinio bilo koji: nekoliko skupova testova jednog builda), za datoteku, njezinu mapu ili uzorak. Retci oko kojih se izvještaji ne slažu tirkizni su na rubu i u Annotated Source, uz ono što je rekao svaki izvještaj; redak u prozoru imenuje izvještaje i broj spornih redaka, a statusna traka i obje kartice kažu odakle dolaze brojevi.
- Crvena, jantarna i zelena. Gutter: Coverage boji svaki pokriveni redak zeleno uz crvenu i jantarnu — način za svakoga tko je očekivao da datoteka na 100 % bude zelena. Pet nijansi toplinske karte su postavke (
heatmap.colors, heatmap.colorsDark), a prozor postavki prikazuje pretpregled svake boje dok se bira.
Popravljeno
- Broj datoteke na statusnoj traci je broj s njezine kartice. Metrika u kojoj nema ničega — MC/DC u datoteci bez odluka — brojala se kao 100 % u stavci, a na kartici koju ona otvara nikako.
- Zaglavlje sa samim konstantama više ne pokazuje 0 % ili 100 %. Direktive pretprocesora broje se kao da nisu kod, poput komentara, kad je
excludeComments uključen.
Coverage Studio for VS Code 1.2026.5 — dva izvještaja, jedan odgovor i zeleno gdje je pokriveno
2026-09-26
Dodano
- Odaberite ili kombinirajte izvještaje datoteke.
coverageFile.sources za svaku datoteku odlučuje koji od nekoliko učitanih izvještaja govori za nju — ili ih kombinira: agree računa redak pokrivenim samo gdje ga je izvršio svaki izvještaj i tirkizno označava retke oko kojih se ne slažu; union gdje je to učinio bilo koji. Choose Coverage Source... na retku prikaza Coverage ili za otvorenu datoteku zapisuje pravilo umjesto vas. Dio plaćenih planova; u izdanju Community odlučuje najnoviji izvještaj.
- Crvena, jantarna i zelena te način ruba jednim klikom. Način
coverage boji pokrivene retke zeleno; nijanse toplinske karte su postavke s pretpregledom uživo na ploči postavki; gumb na statusnoj traci i Alt+G prebacuju rub redom kroz isključeno, nepokriveno, pokrivenost i toplinsku kartu.
Popravljeno
- Broj datoteke na statusnoj traci je broj s njezine kartice. Metrika u kojoj nema ničega — MC/DC u datoteci bez odluka — brojala se kao 100 % u stavci, a na kartici koju ona otvara nikako.
- Zaglavlje sa samim konstantama više ne pokazuje 0 % ili 100 %. Direktive pretprocesora broje se kao da nisu kod, poput komentara, kad je
excludeComments uključen.
Coverage Studio za Visual Studio 1.2026.3 — ništa za odabrati osim koda
2026-09-24
Promijenjeno
- Dijalog Licence traži samo kod. Četiri gumba za plan više nema: kod pretplate ili pozivnice imenuje skup (pool), a skup zna svoj plan, pa nije bilo ničega što bi osoba mogla odgovoriti bolje od samog koda — a Business pozivnica zalijepljena dok je još bio odabran Pro odbijana je zbog pogrešnog plana. Zalijepite kod i pritisnite Activate.
Coverage Studio for VS Code 1.2026.4 — ništa za odabrati osim koda
2026-09-24
Promijenjeno
- Enter Subscription Code traži samo kod. Pitanja o planu više nema: kod imenuje skup (pool), a skup zna svoj plan, pa poslužitelj odatle preuzima i više ne odbija kod kao da je za pogrešan plan. Poveznice jednim klikom u e-porukama nepromijenjene su; e-poruke za aktivaciju više nemaju korak „odaberite svoj plan“, a isti kod aktivira Coverage Studio za Visual Studio bez potrebe za VS Codeom.
Coverage Studio za Visual Studio 1.2026.2 — svako pokretanje testova, svaki izvještaj i što se pomaknulo
2026-09-24
Dodano
- Pokrivenost nakon svakog pokretanja testova. Collect Coverage in Test Explorer… stavlja jedan
.runsettings s Microsoftovim Cobertura sakupljačem uz rješenje — sam se preuzima kad je Tools → Options → Test → Auto detect runsettings files uključeno, ili se jednom odabere pod Test → Configure Run Settings; od tada svako pokretanje u Test Exploreru piše izvještaj pod testnim projektom, a on se učitava čim se pojavi, spojen sa svime što postavke imenuju. Ništa se ne kvači na Test Explorer, pa Visual Studio 2026 i Microsoft.Testing.Platform rade kakvi jesu. Run Tests with Coverage prepoznaje dotnet test, vitest, jest, pytest, go, cargo, maven, gradle, phpunit i ctest, pokreće ih s uključenom pokrivenošću u prozoru Output i učitava što su napisali; testni projekt bez coverlet.collector pokreće se sa sakupljačem koji dolazi s testnim SDK-om.
- Od posljednjeg izvođenja. Svako se učitavanje uspoređuje s prethodnim: trokut u rubnom stupcu na svakom retku koji se počeo ili prestao izvršavati, trend uz rezultat i Compare with Last Run za datoteke čiji su se brojevi pomaknuli.
history.enabled čuva izvođenja preko ponovnih pokretanja; gitDiff.enabled svodi izvođenje na retke koje je vaša grana promijenila.
- Pragovi i Error List. Check Coverage Thresholds prosuđuje izvođenje prema
threshold.*; uz compliance.diagnostics, problems.enabled, problems.perLine ili deadCode.enabled nalazi stoje u prozoru Error List uz nalaze samog prevoditelja, a svaki otvara svoju datoteku.
- Izvještaji, izvozi i značka. Show Annotated Source otvara aktivnu datoteku kao stranicu u prostoru dokumenata — svaki redak u svojoj boji, nalazi uz njega — pomicanu s uređivačem u oba smjera. Open HTML Report i Generate Full HTML Report pišu izvođenje u
htmlReport.outputDir i otvaraju preglednik. Export Coverage Report… piše CSV po datoteci ili po funkciji, Markdown, LCOV, Cobertura, SARIF, SVG značku ili Fucini JSON. Generate Coverage Badge drži značku u repozitoriju, nakon svakog učitavanja uz badge.autoUpdate.
- Risk hotspots i filtri redaka u prozoru Coverage, kao u VS Codeu: funkcije u kojima se složen kod susreće s malo pokrivenosti, najgore prve; i padajući izbornik uz sortiranje za sve datoteke, datoteke s prazninama, netestirane datoteke ili datoteke promijenjene od posljednjeg izvođenja.
- Datoteka postavki u korijenu rješenja.
fucini-coverage.json uz rješenje čita se nakon .vscode/settings.json, a prozor postavki piše u nju kad je to datoteka koja postoji — za tim koji radije ne bi držao mapu .vscode. Oba je izdanja čitaju.
- .NET bez ceremonije.
ignore.generated izostavlja dizajnerske, generirane, obj\ i migracijske datoteke iz svakog zbroja; testRun.skipWhenTestsFail zadržava posljednju dobru pokrivenost na zaslonu kad izvođenje završi crveno.
Još nije u ovom izdanju
- Ploča Test Coverage VS Codeov je API, a Solution Explorer ne može prikazivati značke. Compare Two History Runs slijedi kad ga pretplatnici zatraže.
Coverage Studio for VS Code 1.2026.3 — žarišta, filtri i .NET bez paketa
2026-09-24
Dodano
- Koje datoteke prikazati. Drugi padajući izbornik na alatnoj traci prikaza Coverage, uz sortiranje: sve datoteke, datoteke s prazninama, netestirane datoteke ili datoteke čiji su se brojevi pomaknuli od prethodnog izvođenja. Mape slijede svoje datoteke i zadržavaju vlastite brojeve. U svakom planu.
- Risk hotspots. Ispod stabla: funkcije u kojima se složen kod susreće s malo pokrivenosti, najgore prve, a svaka otvara svoju datoteku na toj funkciji. Funkcija se kvalificira CRAP rezultatom —
hotspots.crapThreshold, zadano 30, brojka koju su predložili autori metrike — ili samo ciklomatskom složenošću, hotspots.complexityThreshold, zadano isključeno. Community vidi broj i najgori rezultat; rangirani popis je Pro.
dotnet test bez paketa. Run Tests with Coverage najprije čita projektne datoteke: gdje nijedna ne referencira Coverlet, izvođenje koristi Microsoftov vlastiti sakupljač — --collect:"Code Coverage;Format=cobertura" — koji dolazi s Microsoft.NET.Test.Sdk, a njegov se izvještaj učitava kao Coverletov.
- Generirane .NET datoteke izostavljaju se.
ignore.generated, uključen prema zadanom, izbacuje *.Designer.cs, *.g.cs, *.generated.cs, *.razor.g.cs, AssemblyInfo, globalne usinge, sve pod Migrations/ i pod obj/ iz svakog zbroja, stranice i izvoza. Dizajnerska datoteka koju nitko ne testira više ne obara rješenje ispod njegova praga.
- Neuspjelo izvođenje zadržava posljednju dobru pokrivenost. Uz
testRun.skipWhenTestsFail, izvođenje koje završi neuspjelim testom ostavlja pokrivenost na zaslonu kakva je bila, i to kaže u oknu Output. Zadano isključeno.
Promijenjeno
- Izvođenje iz Test Explorera pronalazi se samo. Bez ikakve konfiguracije, poznata imena sada uključuju mapu
TestResults/<run>/ svakog testnog projekta, ne samo onu mape radnog prostora, i <user>_<machine>_<date>.cobertura.xml Microsoftova sakupljača uz Coverletov. .NET rješenje čiji su testovi pokrenuti u Visual Studiju pokazuje svoju pokrivenost pri prvom otvaranju; svaka se mapa izvođenja učitava, a spajanje zadržava riječ najnovijeg izvođenja o svakoj datoteci.
Coverage Studio za Visual Studio 1.2026.1 — ista pokrivenost, u drugom IDE-u
2026-09-23
Dodano
- Drugo proširenje, za Visual Studio 2022 i 2026 — Community, Professional i Enterprise. Isti čitač kao u izdanju za VS Code, pa isti izvještaj daje iste brojke, do znamenke, u oba uređivača; i iste
fuciniCoverage.* postavke, čitane iz .vscode/settings.json kao i iz vlastitih korisničkih postavki VS Codea kad je na računalu. Ne koristi vlastitu pokrivenost koda Visual Studija: u Visual Studiju 2022 to je Enterprise značajka, a na Communityju i Professionalu ovo je jedina pokrivenost koju će IDE prikazati. - U uređivaču: traka u rubu po retku — crvena nikad nije izvršena, jantarna djelomično, toplinska karta po broju posjeta — umetnuti brojači, redak iznad svake funkcije s njezinom pokrivenošću, složenošću, CRAP rezultatom i MC/DC-om, pruge na klizaču, lebdeći opis koji kaže koja grana nije uzeta, i točka na retku koji ste uredili nakon izvještaja.
- Prozor Coverage (View → Other Windows → Coverage): svaka datoteka sa svojim metrikama i jedan rezultat nad svima, s razvrstavanjem, s neizmjerenim datotekama ispod; stavke statusne trake
Coverage i File, svaka otvara cijelu karticu. - Naredbe pod Tools → Coverage Studio, s dvostrukim akordima nakon
Ctrl+Shift+U: N/P za sljedeći i prethodni nepokriveni redak, B za sljedeću djelomično testiranu odluku, R za ponovno učitavanje. Način praćenja ponovno učitava kad se promijeni datoteka koju vaš build piše. - Getting Started, šest koraka s gumbom za svaki, na 18 jezika; prvi se put otvara sam.
- Postavke preko zupčanika na alatnoj traci prozora Coverage, koji piše korisničke postavke ovog izdanja ili
.vscode/settings.json mape i čuva komentare datoteke koju uređuje. - Licenca: uključena u svaki plaćeni plan. Računalu na kojem je Coverage Studio za VS Code aktiviran ne treba ništa više — ključ se pronalazi sam; svugdje drugdje Tools → Coverage Studio → Licence… prima kod pretplate iz vaše aktivacijske e-pošte. Bez pretplate pokrivenost se ne čita: u Visual Studiju nema besplatne razine.
Još nije u ovom izdanju
- Run Tests with Coverage i ploča Test Coverage VS Code su API-ji; Solution Explorer ne može prikazivati značke. Prikaz Annotated Source, HTML izvještaj i izvozi, Check Thresholds, unosi u Error List, povijest i trend te diff pokrivenost slijede redoslijedom kojim ih pretplatnici zatraže.
Coverage Studio for VS Code 1.2026.2 — Početak rada, i dva uređivača na jednoj pretplati
2026-09-23
Dodano
- Vodič. Get started with Coverage Studio — pod Help → Welcome → Walkthroughs, i otvoren sam nakon instalacije — vodi novog korisnika u šest koraka od izvještaja o pokrivenosti do redaka koje nitko ne testira, svaki s gumbom za naredbu o kojoj govori. Na svih osamnaest jezika.
- ID instalacije ostavlja se ondje gdje ga Coverage Studio za Visual Studio čita. Izdanje za Visual Studio provjerava ključ u
license.key prema istom otisku i ne može čitati spremište stanja ovog proširenja; pri svakoj aktivaciji ID se sada piše i uz globalnu pohranu proširenja, pa računalo aktivirano u VS Codeu ne treba drugu aktivaciju u Visual Studiju. Nasumični UUID, ni za što vezan, nikamo poslan.
Promijenjeno
- Povrat završava pretplatu. Odobreni povrat ili chargeback sada odmah otkazuje pretplatu, a njezin aktivacijski kod više ne izdaje ključeve; povrati su jedan po kupcu. Ključevi već na računalu rade do vlastitog isteka, kao i prije. Politika povrata kaže točno što se događa.
Coverage Studio for VS Code 1.2026.1 — Nazivi datoteka koje uvijek možete pročitati
2026-09-21
Popravljeno
- Nazivi datoteka u prikazu Coverage čitljivi su pri svakoj širini. Naziv je bio jedini dio retka koji se sužavao — na sedam znakova u običnoj bočnoj traci. Sada se crta u cijelosti, a stupci metrika, rezultat i traka klize ispod njega slijeva i blijede na rezu, tako da se pola broja nikad ne čita kao cijeli broj. Svaka vrijednost i dalje je u opisu retka.
- Oznaka „datoteka je promijenjena” prati datoteku. Nakon učitavanja pratila je prvu izmjenu i prvo vraćanje, a zatim je ništa nije pomaknulo do sljedećeg učitavanja. Sada stiže svako spremanje i svaka promjena na disku.
- Alatna traka prikaza Coverage više ne lomi natpise svojih gumba. U uskoj bočnoj traci traka se sada prelama između svojih kontrola, a okvir za razvrstavanje prelazi u vlastiti redak.
- Značka pokrivenosti besplatna je i u biraču izvoza. Generate Coverage Badge oduvijek je zapisivao SVG značku na svakoj razini, dok je Export Coverage Report… istu datoteku odbijao na Communityju. Sada je zapisuju oba.
- Show Worst-Covered Folders licenciran je kao i druga dva popisa. Ništa se ne mijenja na Communityju, gdje su sva tri besplatna i ne broje se, kao ni za bilo koji već izdani ključ.
Dodano
- Najniža podržana verzija. Proširenje sada otprilike jednom tjedno čita malu potpisanu politiku s našeg licencnog poslužitelja. Kad je verzija starija od najstarije još podržane, probno razdoblje i besplatna razina staju i traže ažuriranje; plaćenoj licenci prikazuje se datum i ona najprije nastavlja raditi tijekom razdoblja počeka. Čitanje ne šalje ništa o vama ni o vašoj instalaciji, a instalacija koja ne može doći do poslužitelja nikad se zbog toga ne zaustavlja. Danas nije postavljen nikakav minimum.
Promijenjeno
- Licenca je od ovog izdanja vlasnička. Proširenje je bilo objavljeno pod uvjetima MIT, što nikad nije odgovaralo proizvodu koji se prodaje pretplatom. Objavljenu verziju smijete instalirati i koristiti u okviru svojeg plana, i komercijalno; ne smijete je kopirati, mijenjati, dalje distribuirati niti na njoj provoditi obrnuti inženjering. Ono što proizvede iz vaših podataka — izvješća, izvozi, značke — vaše je, a stari uvjet navođenja autora više ne vrijedi. Kopija ranijeg izdanja ostaje pod uvjetima s kojima je stigla.
- Gumb za radnje s putanjom (⋯) ne zauzima mjesto dok ne pokažete na redak. Onih 25 piksela koje je držao rezerviranima u svakom retku sada pripada nazivu datoteke; pojavljuje se odmah iza naziva pri prelasku pokazivačem, i ništa se u retku ne pomiče.
Coverage Studio for VS Code 1.2026.0 — Uvjeti, mutanti i testovi iza retka
2026-09-20
Popravljeno
- LCOV 2 datoteke traga navode svaku funkciju jednom.
FN:<redak>,<završni redak>,<ime> čita se onako kako ga lcov 2.0 piše — prije se svaka funkcija pojavljivala dvaput, jednom kao nikad pozvana i jednom u retku 0 — a uz njega se čitaju i parovi FNL:/FNA: iz lcov 2.2.
- C++ predložak više se ne crta kao nikad izvršen zato što jedno instanciranje nije bilo, a funkcija puna makronaredbi ponovno je jedna funkcija umjesto jedne po makronaredbi.
- Tekstovi privole govore što instalacija doista šalje: nema mjesečne stranice vašeg koda, a sažetak upotrebe nosi kôd zahtjeva na koji je izdan vaš ključ.
Dodano
- Pokrivenost uvjeta zaseban je pokazatelj.
a && b jedna je odluka i dva uvjeta, a skup testova može proći obje grane a da b nikad ne vidi kao netočan. Sada ima vlastiti redak, stupac, izvoz, oznaku, težinu u rezultatu (3, između grana i MC/DC) i prag — čita se iz BullseyeCoveragea, TRACE32 cond izvoza i GCC-a 14 uz -fcondition-coverage.
- Mutanti, ondje gdje jesu. Izvještaji PIT-a i Strykera čitaju se mutant po mutant: preživjeli se označavaju u vlastitom retku u uređivaču, s promjenom i testovima koji su je izveli u opisu, te se navode u HTML izvještaju i označenom izvoru.
- Koji su testovi izveli ovaj redak. coverage.py s
--show-contexts i OpenCover s -coverbytest kažu koji su testovi došli do retka; opis uz broj pogodaka imenuje ih.
- Dio izvedenog retka koji nikada nije izveden obojen je u uređivaču, a funkcije u C-u i C++-u dobivaju složenost i CRAP rezultat izračunate iz podataka o granama koje llvm-cov već nosi.
- Projekti s JaCoCom, Coberturom i Coverletom učitavaju se pri prvom otvaranju, bez ijedne postavke — uključujući ondje gdje Maven, Gradle i
dotnet test zadano pišu.
- Svaki pokazatelj uz svaku datoteku, pri bilo kojoj širini, poredan po težini u vašem rezultatu, a ono što ne stane pomiče se umjesto da nestane — te broj na ikoni Coverage kad se datoteka traga ponovno učita dok gledate drugamo.
- Kanal predizdanja za koji se možete javiti i jedan gumb u naslovnoj traci uređivača koji gasi bojenje pokrivenosti i vraća točno ono što je bilo.
Promijenjeno
- Bullseye i TRACE32: pokrivenost grana više ne uključuje uvjete. Odluke su pokrivenost grana, a uvjeti pokrivenost uvjeta, pa se brojka grana takvog projekta mijenja, a s njom i složeni rezultat. Postavite
whmWeights.conditions na 0 za rezultat kakav je bio.
- Besplatna razina Community ima tjedni obrok: po pet tjedno za svaku mjerenu radnju, gdje ih je bilo dvadeset dnevno, a na granici se nudi pretplata ili sedmodnevna propusnica. Instalacija koja je već u upotrebi zadržava stara ograničenja 30 dana i o tome je obaviještena jednom, s datumom.
- Probno razdoblje i besplatna razina vode evidenciju upotrebe s licencnim poslužiteljem: hash identifikatora stroja iz VS Codea, izdanje, dan kad je procjena započela i brojači mjerenih radnji — i ništa više; nikad na plaćenoj licenciji i nikad se na njega ne čeka. Zamjena za telemetriju sada je jednokratnih 30 dana.
- Mjesečne stranice izvornog koda više nema — ne prikuplja se, ne čuva i ne šalje ni za koga, a onu koju je zadržala ranija verzija ova briše pri prvom pokretanju.
0.2026.82 — Pragovi po mjeri vašeg projekta i sve što vaši izvještaji sadrže
2026-09-17
Popravljeno
- Toplinska karta na tamnoj temi čita se u pravom smjeru. Njezin je prijelaz boja išao od blijedožute do tamnosmeđe, pa je najtoplija petlja imala najbljeđu traku. Tamna tema sada ima vlastiti prijelaz, od prigušene maslinaste do žive narančaste.
- Opis za MC/DC ponovno prikazuje svoje pojedinosti, a odluka iz llvm-cov ispravno broji svoje uvjete. Trenutačni VS Code sažimao je opis u jedan redak; a
(a && b) || c bio je naveden s jednim uvjetom na 100 % pod naslovom koji je s pravom navodio 2 od 3 para. - Funkcije u jeziku C++ zovu se onako kako ste ih napisali:
clamp_to<int> i gearbox::next_gear umjesto povezivačeva ??$clamp_to@H@@YAHHHH@Z, za llvm-cov, lcov i gcov. - Brojevi redaka za Istanbul podudaraju se s nyc, čita se XML alata
dotnet-coverage, SimpleCov retci :nocov: isključuju se umjesto da se smatraju neispravnima, a izvještaj koji sadrži samo sažetak zadržava svoje brojke bez obzira na redoslijed kojim se izvještaji čitaju. - Radni prostori s više korijena: HTML izvještaj više ne navodi mapu dvaput, prikaz Coverage mapu radnog prostora naslovljava njezinim imenom, a pravilo
pathRemap smije uz ${workspaceRoot} koristiti i ${workspaceFolder}.
Dodano
- Prikazuje se sve što izvještaj sadrži. Pozivi funkcija, objektni kod i mutacijski rezultat dobivaju stupac u prikazu Coverage, u HTML izvještaju te u CSV i Markdown izvozima, redak u karticama statusne trake i značku u anotiranom izvornom kodu — a pokazatelj koji izvještaj ne sadrži izostavlja se umjesto da se ispiše kao nula.
- Složenost i CRAP. Kada izvještaj sadrži ciklomatsku složenost (OpenCover, JaCoCo, Clover, Cobertura), svaka funkcija dobiva CRAP rezultat na svojem CodeLensu, datoteka dobiva Max CRAP koji vodi do metode, a HTML izvještaj navodi Riskiest Methods.
- Više iz svakog formata: imenovani krakovi grana, isključeni retci, rasponi stupaca unutar retka, alat, verzija i datum izvještaja te upozorenja koja je alat u njega upisao.
- Neobavezne težine za objektni kod i mutacijski rezultat u kompozitnom rezultatu, obje
0 dok ih sami ne postavite.
Promijenjeno
- Zadani pragovi više nisu 100 %. Prag koji niste postavili sada znači 80 za retke, 80 za funkcije, 75 za regije, 70 za grane i 75 za kompozitni rezultat, bez vrata za MC/DC, instancijacije, pozive funkcija ili objektni kod — ono što se može zahtijevati od običnog projekta.
fuciniCoverage.threshold.profile: "safety" vraća sva vrata na 100, točno kao prije, a prag koji ste sami postavili ima prednost pred oba profila. Ako ste se oslanjali na stare zadane vrijednosti, ocjenjivat će vas se blaže sve dok ne odaberete safety; instalacija koja je već prije radila o tome se obavještava jednom, uz gumb koji ga postavlja. - Pokazatelj bez vrata prikazuje neutralnu crticu u karticama umjesto kvačice ili križića, a ploča postavki unaprijed prikazuje ocjenu prema vratima koja su stvarno na snazi.
0.2026.81 — Točni postoci i izvještaj koji možete poslati
2026-09-16
Popravljeno
- Pokrivenost u međuspremniku s nespremljenim promjenama opet se poklapa. Prolaz učitan dok je datoteka imala nespremljene izmjene pomicao je svaku oznaku, opis i CodeLens za onoliko redaka koliko su ih te izmjene gurnule. Izmjene se sada rekonstruiraju iz datoteke na disku, a cijeli redak zalijepljen iznad retka više ne broji taj redak kao uređen.
- Spajanja i ponovljeni LCOV zapisi zbrajaju se. Noviji tracefile više ne zadržava sažetke grana i MC/DC starijeg prolaza, a datoteka navedena dvaput u jednom tracefileu kombinira se kako je kombinira genhtml.
- Licencni ključ ostaje na svom računalu. Settings Sync više ga ne prenosi na druge instalacije, gdje je blokirao pokrivenost; istekli Business, Enterprise ili Pro Plus ključ sam se obnavlja do 45 dana nakon isteka.
- Udaljeni tracefileovi dohvaćaju se pažljivije.
remote.headers ostaju na svom ishodištu kroz preusmjeravanja, dohvat odustaje nakon 30 sekundi, stranica za prijavu se odbija umjesto da se sprema u predmemoriju, a prozor otvoren izvan mreže učitava zadnju preuzetu kopiju. Samoažuriranje instalira samo vlastito izdanje. - Parseri: brojevi redaka llvm-cov poklapaju se s
llvm-cov show, OpenCover odluke iz različitih metoda više se ne prepisuju, xccov, TRACE32 i EMMA zadržavaju svoje brojke redaka, Cobertura klase koje dijele datoteku jedna su datoteka, JaCoCo zbirni izvještaji se čitaju, a mapiranje putanja razrješava .. i uspoređuje cijele segmente. - U uređivaču: povijest se vodi po radnom prostoru, oznake ostaju na pravim datotekama, a ne na HEAD oknu diff uređivača, reci iza kraja datoteke se ne crtaju, značke Explorera na Windowsu rade za putanje
C:\…, a veliki prolazi brže se pretražuju.
Dodano
- Pošalji dijagnostički izvještaj. Nude ga obavijesti o neuspjelom učitavanju, udaljenom dohvatu, spajanju, usporedbi povijesti ili chatu. Prikazuje točno onaj JSON koji bi bio poslan, s neobaveznim uzorkom datoteke od 4 KB, komentarom i adresom za odgovor, i ne šalje ništa dok ne kliknete Pošalji.
- Izvještaji o pogreškama. Pogreška
FUCINI_* prijavljuje se bez sadržaja datoteka, putanja ili imena kad je razina telemetrije VS Codea all ili error. Tri retka dnevnika imaju vlastite kodove: FUCINI_REMOTE_002, FUCINI_REMOTE_003 i FUCINI_GITDIFF_002, svaki opisan u korisničkom vodiču.
Promijenjeno
- Svaki postotak pokrivenosti ima dvije decimale, odrezane, a ne zaokružene:
87.43%, a 100.00% samo kad je pokrivenost točno 100. - Pragovi odlučuju na točnoj vrijednosti. Dosad se svaki postotak prvo zaokruživao na cijeli broj, pa je 89,6 % prolazio prag od 90 %. Projekt koji je prolazio samo zaokruživanjem sada će pokazivati NON-COMPLIANT dok mu pokrivenost doista ne dosegne prag.
- Telemetrija je dnevna. Svaka instalacija dnevno šalje malu licencnu poruku na razini telemetrije VS Codea
all; s uključenim telemetry.enabled sažetak korištenja odlazi dnevno umjesto mjesečno. Instalacije koje su otključale značajke za telemetriju pitaju se prije nego što im se uvjeti promijene.
0.2026.80 — Ažuriranje koje se vidi
2026-09-14
Dodano
- Prikaz Coverage javlja kada je dostupno ažuriranje i ne prestaje to javljati. Traka iznad licencnog natpisa navodi novu verziju uz onu koju imate, s istim trima gumbima kao obavijest o ažuriranju: „Preuzmi & instaliraj”, „Prikaži popis promjena” i „Preskoči ovu verziju”. Ikona prikaza na traci aktivnosti dobiva i značku, pa se vidi i kad je prikaz zatvoren. Obavijest se pojavljivala samo jednom, pri automatskoj provjeri, a klik bilo gdje drugdje skrivao ju je do sljedeće provjere dan kasnije; traka ostaje dok se ažuriranje ne instalira ili preskoči ili dok se ne isključi
fuciniCoverage.update.checkForUpdates, i ostaje i nakon ponovnog učitavanja prozora.
0.2026.79 — Jedan ping dnevno
2026-09-14
Promijenjeno
- Mali pingovi šalju se najviše jednom dnevno, zajedno. Ažuriranje, promjena licence, novi format pokrivenosti i datoteka koja se nije mogla pročitati prije su bili svaki zaseban ping, poslan čim bi bio primijećen — a na nekim instalacijama primijećen ponovno u svakoj sesiji: opozvano mjesto prijavljivalo je svoj opoziv pri svakom pokretanju, a prebacivanje između radnih prostora s različitim formatima svaki je put prijavljivalo „novi” skup. Sada se prikupljaju i šalju kao jedan ping, najviše jednom dnevno. Dan bez ičega za prijaviti ne šalje ništa.
- Prijavljuje se samo ono što se stvarno promijenilo. Licenca koja se unutar dana promijeni i vrati ne prijavljuje ništa, a formati su svi formati koje je instalacija ikad učitala, a ne samo oni iz posljednjeg radnog prostora. Ping instalacije i obavijest o uklanjanju i dalje se šalju odmah, i ne prikuplja se ništa novo.
- Vlastiti prekidač telemetrije u VS Codeu sada vrijedi i za male pingove. Kad je
telemetry.telemetryLevel postavljen na off, za dnevni ping ništa se ne prikuplja i ništa se ne šalje; dosad su ga poštovali samo mjesečni sažetak i obavijest o uklanjanju. Jednokratni ping instalacije nije promijenjen.
- Mjesec koji završi dok uređivač miruje ipak se prijavljuje. Mjesečni sažetak provjeravao se samo nakon učitavanja pokrivenosti, pa instalacija koja se prestala koristiti nikad nije poslala svoj posljednji mjesec. Sada se provjerava i svakih sat vremena dok je VS Code otvoren — i dalje samo s uključenom telemetrijom i i dalje najviše jednom u 30 dana.
Ispravljeno
- Ping koji je poslužitelj odbio više se ne računa kao poslan. Svaki odgovor poslužitelja, pa i pogreška, smatrao se isporukom, pa je odbijeni dnevni ping gubio ono što je prikupio, a odbijeni ping instalacije nije se ponovno pokušavao. Sada se računa samo uspješan odgovor; odbijeni dnevni ping ili mjesečni sažetak čuva se i ponovno pokušava dan kasnije.
0.2026.78 — Novih četrnaest dana
2026-09-13
Promijenjeno
- Svaka evaluacija jednom dobiva novih 14 dana. Pri prvom pokretanju ovog izdanja probno se razdoblje ponovno otvara na svakoj instalaciji Pro izdanja bez plaćene licence — bez obzira na to je li isteklo davno ili mu je preostalo još nekoliko dana — i traje 14 dana od toga dana. Kratka obavijest to javlja kada se dogodi. Plaćena licenca ostaje netaknuta, a izdanje Community, koje nema probno razdoblje, nije promijenjeno.
- Plaćena licenca prikazuje „Aktivirano“ zelenom bojom. Licencna traka prije je pretplatniku prikazivala „Aktivirano — preostalo dana: 30“. Pretplatnički ključ vrijedi do kraja plaćenog razdoblja i obnavlja se s njime, pa se to odbrojavanje nikad ne bi prestalo čitati kao probno razdoblje koje samo što nije isteklo. Naslov sada kaže samo Aktivirano, datum stoji u pojedinostima kao „Vrijedi do“, a odbrojavanje se vraća tek u posljednjem tjednu prije isteka ključa, uz napomenu o skoroj obnovi koja je već bila ondje.
0.2026.77 — Zalijepite svoj kôd, i to je sve
2026-09-12
Dodano
- „Enter Subscription Code“ — i ništa se više ne pita. Odaberite plan, zalijepite kôd iz poruke o kupnji, potvrdite — i vaš licencni ključ bit će izdan i primijenjen umjesto vas. Dosad je jedini put iz samog uređivača vodio kroz upitnik za evaluaciju — ime, e-pošta, vrsta računa, tvrtka, anketa — a to je pogrešan obrazac staviti pred onoga koji je već kupio. Drugi put bila je poveznica
vscode:// u poruci, a oprez pred takvim klikom razuman je, a ne plašljiv: takvu poveznicu može pokrenuti svaka stranica koju posjetite, i upravo zato aktivacija traži potvrdu. Naredba je u paleti naredbi, a i tipka je na licencnoj traci panela pokrivenosti i u dijalogu za aktivaciju — u svakom stanju, jer licenca seli s računala na računalo, a kupnja u sredini probnog roka uobičajen je slučaj, a ne iznimka.
- Način da se planovi vide iz samog probnog roka. Stranica s cijenama bila je dostupna s ekrana besplatnog izdanja, ali ne iz dijaloga za aktivaciju ni s licencne trake — s jedinog mjesta na koje zaista gleda onaj koji čita „Ostala su 3 dana“. Takvom se čitatelju nudio upitnik i napomena o
settings.json, a cijena nikakva.
Promijenjeno
- Dijalog za aktivaciju i licencna traka više ne počinju s
FCK1. Oboje je prije počinjalo vašim kodom zahtjeva i uputom „zalijepite ključ u settings.json“, a to je put za slučaj kada se našem licencnom poslužitelju uopće ne može pristupiti. Prikazano prvo, čitalo se kao uputa — pa je kupac s pretplatničkim kodom FCB1… bio poslan na „Enter Activation Key“, jedino polje koje će ga zasigurno odbiti. Oboje je i dalje tu, ispod putova koji odgovaraju onima koji su kupili, i opisano kao ono što zaista jest.
0.2026.76 — Naredba koju je e-pošta navela
2026-09-12
Popravljeno
- „Request Activation Key“ sada je stvarno naredba. Vaša poruka o kupnji — i stranica za aktivaciju, na svakom jeziku — govore vam da, ako poveznica na jedan klik ne preživi vaš program za e-poštu, možete pokrenuti Fucini Coverage: Request Activation Key iz palete naredbi, odabrati plan i zalijepiti svoj kôd. To je ime pripadalo naslovnoj traci panela i samoj poveznici, nikada naredbi, pa u paleti pod njime nije bilo ničega — a najbliže poklapanje po imenu, Enter Activation Key, prima ključ
FCK1… koji izdaje naš poslužitelj, a ne kôd FCB1… koji nosi vaša poruka. Slijediti upute značilo je stići u jedino polje koje će zasigurno odbiti ono što držite u ruci. Sada je to prava naredba.
- Dijalog za aktivaciju nudi Zatraži licencu… i dok probni rok ili ključ još vrijede. Prije se skrivao dok jedno od dvoga ne istekne, uz obrazloženje da instalacija koja radi nema razloga kontaktirati licencni poslužitelj. No kupnja u sredini probnog roka uobičajen je slučaj, a ne iznimka, i kupac u tom položaju iz dijaloga nije imao put do polja u koje ide njegov kôd: dvije preostale tipke tražile su ključ koji nastaje tek kad se kôd iskoristi.
0.2026.75 — Paleta za daltoniste
2026-09-12
Dodano
- Paleta za daltoniste. Postavite
colorScale.preset na colorblind i pokrivenost se crta cinober-crvenom, narančastom i plavom (paleta Okabe–Ito) umjesto crvenom, jantarnom i zelenom — gradijent, trake na rubu, isticanje redaka, značke u Exploreru i oznake od posljednjeg pokretanja. Boja koju ste sami postavili ima prednost.
0.2026.74 — Pokrivenost filtrirana po testu
2026-09-12
Dodano
- Filtriranje pokrivenosti po testu u vlastitom prikazu Test Coverage u VS Codeu. Kada datoteka traga imenuje svoje testove — lcov sekcije
TN: — svaki test postaje stavka pod Fucini Coverage u Test Exploreru, svaka datoteka u prikazu Test Coverage navodi testove koji su u njoj nešto izvršili, a odabir jednog prikazuje retke do kojih je taj test došao. ${command:…} u postavkama putanja. ${command:cmake.buildDirectory}/coverage.info prati odabrani CMake kit. Naredba se izvršava prije svakog otkrivanja, najviše pet sekundi i samo u pouzdanom radnom prostoru; naredba koja ne uspije ostavlja varijablu kako je napisana, a izlaz kaže zašto.- Brzi početak od 30 sekundi i usporedba s alternativama sada otvaraju stranicu na Marketplaceu i početnu stranicu.
Popravljeno
- Datoteka traga koja je datoteku zabilježila jednom po testu brojala ju je jednom po testu. Zapisi se sada zbrajaju po datoteci traga, kako ih čita genhtml: datoteka se u zbrojevima broji jednom, a s više učitanih datoteka traga ne gube se retci nijednog testa.
0.2026.73 — Potpisana ažuriranja i ključ koji preživi prelazak
2026-09-11
Popravljeno
- ID instalacije sada se sprema prije nego što ga išta upotrijebi. 0.2026.72 build 2 prestao je iznova određivati ID pri svakom pozivu, ali pokretanje i dalje nije čekalo da se on zapiše, pa ga je prozor zatvoren odmah nakon otvaranja i dalje mogao izgubiti — a s njim i otisak računala za koji je vezan aktivacijski ključ. Pokretanje sada čeka.
- Prelazak s Pro na Community više ne poništava aktivacijski ključ. Svako izdanje ima vlastitu pohranu proširenja, pa je Community počinjao s novim ID-om instalacije i novim otiskom, dok je ključ u vašim postavkama — uključujući onaj koji je prelazak upravo zatražio za besplatno otključavanje — bio vezan uz stari. Prelazak sada prenosi ID.
Sigurnost
- Ažuriranja s fucini.software potpisana su i provjeravaju se prije instalacije. Svaki
.vsix u kanalu ažuriranja nosi SHA-256 sažetak i Ed25519 potpis izrađen ključem koji nikad nije na web-poslužitelju. Ugrađeni program za ažuriranje i prelazak na Community provjeravaju oboje prema preuzetoj datoteci i odbijaju sve ostalo — stranicu s pogreškom proxyja, prekinuto preuzimanje, stariju verziju iz predmemorije ili datoteku koja nije naša. Sam HTTPS to ne pokriva: korporativni proxy koji pregledava TLS ponovno potpisuje svaku vezu koju vidi. - Svako izdanje ima vlastiti naziv datoteke. Kanal ažuriranja sada upućuje na
.vsix s brojem verzije umjesto na datoteku koja se prepisivala pri svakom izdanju, pa predmemorija koja zanemaruje Cache-Control ne može isporučiti prošlomjesečnu verziju kao ovomjesečnu. Poveznice na stranici za preuzimanje ostaju iste.
0.2026.72 — Odluke ispitane samo u jednom smjeru
2026-09-10
Dodano
- Skok na odluke ispitane samo u jednom smjeru. Next Partly-Tested Decision i njezin prethodni parnjak prolaze kroz grananja od kojih su neke grane izvedene, a druge nikada. To je praznina koju kretanje po neobuhvaćenim redcima ne može pokazati: redak čija se naredba izvela smatra se pokrivenim i takav ostaje, koliko god njegovih grana nikada nije uzeto —
if (a && b) dosegnut jednom s netočnim a pokriven je 100% po redcima i ispitan napola. Jedno zaustavljanje po odluci umjesto po grani, jer grane if/else mogu biti stranicama udaljene, a skok na petu granu switcha govori manje od skoka na sam switch. Odluke do kojih nijedna grana nije došla ostaju naredbama za neobuhvaćene retke, koje se ondje ionako zaustavljaju — a datoteka u čijem izvještaju grananja uopće nema to i kaže, umjesto da tvrdi kako je svaka odluka ispitana u oba smjera.
Reload Coverage iznova čita ono što je već učitano. S isključenim praćenjem jedini put do svježih brojeva nakon ponovnog pokretanja testova bio je Load Coverage, koje ponovno pokreće otkrivanje i može se vratiti s drugačijim skupom od onoga na zaslonu. Ovo iznova čita točno ono što je sada učitano, uključujući ručno odabrane datoteke traga koje otkrivanje više nikada ne bi našlo.
Copy Coverage Summary stavlja izvođenje u Markdown tablicu. Najslabije pokrivena datoteka prva, s retkom zbroja, spremno za lijepljenje u pull request. Stupci za grananja i MC/DC pojavljuju se samo kada ih je nešto u izvođenju izmjerilo: stupac crtica čita se kao nulta pokrivenost umjesto kao neizmjereno, što je suprotno od istine.
Popravljeno
- Identifikator instalacije mogao se mijenjati između sesija — a upravo se iz njega gradi otisak licence. Utvrđivao se iznova pri svakom pozivu i spremao bez čekanja na zapis, pa je drugi poziv, ili prozor uređivača zatvoren ubrzo nakon pokretanja, mogao stvoriti novi. Identifikator koji se mijenja jest aktivacijski ključ koji više ne odgovara; uz to je napuhavao svaku brojku koja se broji po instalaciji. Sada se utvrđuje jednom po sesiji i sprema prije nego što ga išta upotrijebi. Verzija 2.
0.2026.71 — Koja je datoteka traga pokrila ovaj redak
2026-09-08
Dodano
- Pripisivanje podrijetla na razini retka. Kad je učitano više datoteka traga, opis s brojem izvođenja sada završava s Pokriveno s: i izvještajima koji su na tom retku zabilježili izvođenje — a klik na redak datoteke traga u prikazu Coverage sada osvjetljava retke koje je ona doprinijela, u svakom otvorenom uređivaču, kao što je već osvjetljavao datoteke koje je izmjerila. To je jedino pitanje na koje objedinjeno izvođenje može odgovoriti, a pojedinačni izvještaj ne može: dvije datoteke traga koje mjere istu datoteku ne slažu se o njezinim recima, a dosad je objedinjavanje to neslaganje poravnalo i nikad ga nije pokazalo. Objedinjavanje je i dalje po datoteci — najnoviji izvještaj u cijelosti dobiva zajedničku datoteku — pa se podrijetlo po recima indeksira prije njega. Broje se samo pokriveni redci: izvještaj koji je redak zabilježio kao
0 nije ga pokrio.
- Zapis
TN: u lcov-u napokon se čita. Datoteka traga koja imenuje svoj skup testova — TN:integration — prikazuje se kao coverage.info (integration) svugdje gdje se imenuje podrijetlo, a ime preživljava izvoz natrag u lcov umjesto da bude zapisano prazno. Većina alata piše TN: prazan i ostaje nepromijenjena; oni koji ga popunjavaju upravo su oni čije se datoteke objedinjuju, a ime je tada jedino što govori koja je koja.
fuciniCoverage.lineHighlight boji same retke. off | uncovered | heatmap, prema zadanome isključeno: prozirna boja iza svakog nepokrivenog i djelomično pokrivenog retka, a u načinu heatmap i iza svakog izvedenog, to toplija što je češće izvođen. Vlastita postavka umjesto četvrte vrijednosti editorGutter.mode, jer se žele u različitim kombinacijama: obojene praznine uz čistu marginu, ili trake bez boje iza koda. Prozirna jer se nalazi ispod teksta, i boji praznine, a ne pokrivene retke, iz istog razloga iz kojeg to čini margina.
fuciniCoverage.overviewRuler sam odlučuje o crti u kliznoj traci. follow (zadano) radi ono što je oduvijek radio: crta ondje gdje margina crta nepokrivenu ili djelomičnu traku, i nikada za toplinsku kartu. uncovered crta je i kad je editorGutter.mode isključen — karta praznina datoteke uz kliznu traku i ništa pokraj koda. off zadržava trake i uklanja crtu. Preglednik je prije bio čvrsto vezan uz marginu, pa te dvije kombinacije nisu postojale.
Popravljeno
- Datoteka traga koja se ne može raščlaniti sada kaže kao što je pročitana. „…nije ispravno oblikovana” ostavljalo je čitatelja da nagađa je li datoteka uopće prepoznata kao format koji misli — a Cobertura dokument koji je odbio VectorCAST-ov raščlanjivač drukčiji je problem od doista odsječenog dokumenta. Obavijest sada završava s Pročitana je kao cobertura. kad je neki raščlanjivač preuzeo datoteku. Ako je nije preuzeo nijedan, ništa se ne dodaje: „nije u formatu koji ovo proširenje čita” to već kaže u cijelosti.
0.2026.70 — Obavijest o zastarjelim podacima ponovno prikazuje svoju ikonu
2026-09-08
Popravljeno
- Obavijest o zastarjelim podacima u opisu na traci stanja ponovno prikazuje svoju ikonu sata umjesto teksta
$(history). Obavijest koja kaže da brojevi ispod nje opisuju stariju verziju datoteka nosi istu oznaku $(history) kao i sama traka stanja. Na traci stanja ta se oznaka crta kao ikona sata jer StatusBarItem.text sam zamjenjuje ikone; opis je MarkdownString, koji to mora uključiti pomoću supportThemeIcons, a to nikada nije učinio — pa je jedino mjesto koje objašnjava zašto pokrivenosti ne treba vjerovati počinjalo komadom sirove sintakse. Opis to sada uključuje.
0.2026.69 — Načini rada ruba, udaljene datoteke traga, radni prostori s više korijena i neizmjerene datoteke
2026-09-08
Dodano
- Vlastiti rub uređivača sada može prikazati nepokrivene retke ili toplinsku kartu broja pogodaka. Prema zadanome i dalje prikazuje samo nalaze — MC/DC trake, trokute od zadnjeg izvođenja, točke uređenih redaka — a prikaz cijele datoteke u bojama ostaje Annotated Source.
fuciniCoverage.editorGutter.mode uključuje više: uncovered stavlja traku na svaki redak koji se nikad nije izvršio i jantarnu na svaki redak s granom koja nikad nije uzeta, a ništa na pokrivene retke, pa zeleni zid ne skriva tri crvena; heatmap dodaje topli ton na svaki izvršeni redak, to topliji što se češće izvršio. Choose Editor Gutter Mode... prebacuje između ta tri iz palete ili izbornika statusne trake. README je prije bez ograde tvrdio „nativne oznake“; sada kaže što doista postoji. - Brojevi pogodaka u retku.
fuciniCoverage.hitCounts.inline ispisuje ×12 iza svakog retka na kojem počinje naredba, uključujući ×0 — broj koji je oduvijek bio u opisu pri prelasku mišem, bez prelaska mišem. Toggle Inline Hit Counts ga uključuje i isključuje; izbornik statusne trake nudi ga kao Prikaži ili Sakrij, što god vrijedi. ${env:NAME}, ${config:section.key}, ${userHome} i ${workspaceFolderBasename} u svakoj postavci putanje, uz ${workspaceFolder} koji je ondje već bio. Varijabla koju proširenje ne poznaje ostavlja se kako je napisana, pa se tipfeler u dnevniku otkrivanja pojavljuje kao putanja koju je tražilo umjesto da nestane. - Unos u
coverageFile.paths može biti http(s):// URL. Artefakt se pri svakom učitavanju dohvaća u pohranu proširenja i odande učitava; prikaz Coverage imenuje URL, a ne putanju predmemorije. Svaki je dohvat uvjetan (ETag / Last-Modified), pa ponovni dohvat nepromijenjenog artefakta ne preuzima ništa, a kad dohvat ne uspije, umjesto toga se učitava zadnja preuzeta kopija, a razlog je u izlazu. fuciniCoverage.remote.headers dodaje zaglavlja Name: value s proširenim varijablama — Authorization: Bearer ${env:CI_TOKEN} drži token izvan settings.json — a fuciniCoverage.remote.refreshMinutes ponovno dohvaća po mjeraču vremena. Dodajte #lcov.info (ili drugo ime datoteke) kao fragment URL-a kad sam URL ne završava imenom datoteke, kako bi format bio poznat. - Učitavanje i Generate Full HTML Report prikazuju napredak i mogu se prekinuti. Učitavanje deset ili više datoteka traga, ili 8 MB ili više njih, izvodi se pod obaviješću o napretku s gumbom Cancel koja imenuje datoteku koja se čita i fazu (čitanje, zatim provjera izvora); manje samo vrti statusnu traku kao i prije. Prekid ostavlja prethodno izvođenje učitanim i to kaže. HTML izvještaj čini isto po svakoj iscrtanoj i zapisanoj stranici.
- Dva razloga više za ponovno učitavanje. Apsolutni unos u
coverageFile.paths izvan radnog prostora — stablo builda pokraj checkouta, Bazelov izlazni korijen — sada se također ispituje, pa se datoteka koja se ondje pojavi nakon otvaranja prozora učitava umjesto da se više nikad ne pogleda; nadzornik je ikad vidio samo radni prostor. A fuciniCoverage.watch.reloadAfterTasks imenuje zadatke (label iz tasks.json ili source: name kako ih prikazuje popis Run Task, npr. npm: test) čiji završetak ponovno učitava pokrivenost, bio watch.enabled uključen ili ne — za buildove koje nadzornik ne može pratiti: izvođenje koje zamjenjuje simbolički povezano izlazno stablo, izvještaj na mrežnom dijeljenju, korak pokrivenosti koji naknadno obrađuje svoju datoteku. - Radni prostori s više korijena. Svaka mapa radnog prostora sada se otkriva pod vlastitim uvjetima:
coverageFile.defaultLocation, coverageFile.paths, pathRemap, ignore, watch.*, remote.*, badge.*, direktoriji izvještaja, gitDiff.*, problems.perLine, editorGutter.mode i hitCounts.inline čitaju se po mapi, pa vrijedi vlastiti .vscode/settings.json mape ili njezin unos u .code-workspace; ${workspaceFolder} znači vlastitu mapu unosa; datoteke traga pronađene u svim mapama spajaju se u jedno izvođenje, a prikaz Coverage grupira datoteke po mapi. ${workspaceRoot} u pravilu pathRemap najprije pokušava vlastitu mapu datoteke traga, zatim ostale. Sve što treba jednu mapu — dijalozi za datoteke, izlaz izvještaja i značke, git metapodaci, Run Tests with Coverage — uzima mapu aktivnog uređivača, a s više mapa i bez uređivača pokretanje testova pita koju. Mapa dodana radnom prostoru ili uklonjena iz njega sama ponovno učitava pokrivenost. Prije toga dvanaest je mjesta uzimalo prvu mapu, a drugi je korijen za sve dobivao pogrešnu osnovu. - Izvođenje se objavljuje u vlastitom prikazu Test Coverage VS Codea. Uz
fuciniCoverage.testCoverage.publish (zadano uključeno) svako učitano izvođenje ide i u nativnu ploču Test Coverage, njezine postotke po datoteci u Exploreru i vlastiti prekidač uređivača „Show Inline Coverage“ — retci, grane i funkcije, s pojedinostima učitanima na zahtjev. Show in Test Coverage View objavljuje aktivno izvođenje i otvara ploču, što god postavka govorila; izbornik statusne trake nudi ga iza quickActions.showTestCoverage. - Pravilo premapiranja putanja predlaže se kad se datoteke ne podudaraju. Najčešće „učitalo se, ali ništa ne svijetli“ jest datoteka traga čije putanje dolaze iz kontejnera ili CI checkouta (
/build/src/a.c, /home/runner/work/repo/repo/src/a.c, C:\agent\_work\1\s\src\a.c), dok radni prostor ima src/a.c. Kad učitavanje ostavi datoteke nepodudarene, proširenje potraži imena datoteka u radnom prostoru, izvede pravilo prefiksa koje objašnjava najviše njih, zabilježi ga kao [FUCINI_REMAP_002], a rezultat učitavanja nudi Apply Suggested Remap — jedan klik dodaje pravilo u fuciniCoverage.pathRemap i ponovno učitava. Suggest Path Remap Rule izvodi istu analizu na zahtjev. Bez klika ništa se ne zapisuje. fuciniCoverage.ignore: datoteke koje se nikad ne broje. Uvezene, generirane ili tuđe datoteke (vendor/**, **/*.generated.ts, build/**) izbacuju se iz izvođenja pri učitavanju, pa prikaz Coverage, statusna traka, pragovi, značke, CodeLens, povijest i izvozi svi broje bez njih; rezultat učitavanja kaže koliko ih je izostavljeno, a izlaz ih imenuje. Uzorci se podudaraju s putanjom relativnom prema radnom prostoru i s apsolutnom putanjom; uzorak bez / podudara se s imenom mape ili datoteke na bilo kojoj dubini, kao .gitignore. Za cijele datoteke — retci unutar datoteke i dalje koriste vlastite oznake isključivanja alata. - Stavke u ploči Problems po retku, na zahtjev.
fuciniCoverage.problems.perLine (off, uncovered ili uncoveredAndPartial; zadano isključeno) stavlja dijagnostiku razine Information na svaki neprekinuti blok redaka koji se nikad nisu izvršili — mrtva funkcija od četrdeset redaka jedan je unos, a ne četrdeset — a u drugom načinu i na svaki redak čija grana nikad nije uzeta. Samo za otvorene dokumente, pa izvođenje s dvije tisuće datoteka ne može preplaviti ploču; unosi prate svoje retke dok se međuspremnik uređuje i nestaju kad se dokument zatvori. Unos po datoteci iza problems.enabled nepromijenjen je. - Značka pokrivenosti za README. Generate Coverage Badge zapisuje SVG u stilu shieldsa za aktivno izvođenje u radni prostor (
fuciniCoverage.badge.outputPath, zadano coverage-badge.svg), da ga README ugradi s  i bez ikakvog udaljenog servisa. badge.metric bira retke, grane, MC/DC ili ponderiranu ocjenu; boja prati razine colorScale; badge.autoUpdate ga iznova zapisuje nakon svakog učitavanja. SVG značka koju je Export Coverage Report već nudio sada dijeli isti renderer. - Neizmjereno naspram nepokrivenog. Datoteka koju nijedan test nikad nije učitao uopće nije u datoteci traga, pa ju je proširenje oduvijek držalo odvojeno od izmjerene datoteke s 0 pogodaka — i izvan brojeva, a upravo tako projekt kojemu polovica modula nema testova čita „92%“. Sada se razlika vidi: otvaranje takve datoteke stavlja
not measured u statusnu traku, a fuciniCoverage.unmeasured.mode odlučuje što se još događa. list dodaje grupu Neizmjereno u prikaz Coverage sa svakom datotekom radnog prostora one vrste koju je izvođenje mjerilo, a izvođenje je ne sadrži, broji ih u rezultatu učitavanja, označava ih s ? u Exploreru kad su značke uključene i dopušta da threshold.unmeasuredFiles obori Check Coverage Thresholds iznad odabranog broja. count ide dalje: svaka takva datoteka ulazi u izvođenje kao 0% — jedan nepokriveni redak po retku koda — pa statusna traka, pragovi, značke, povijest, izvozi i prikaz Test Coverage svi vide pošten broj; datoteka se posvuda crta kao neizmjerena, nikad kao „više ne odgovara svojoj pokrivenosti“. unmeasured.exclude drži zaglavlja i slično izvan toga (zadano **/*.h, **/*.hpp, **/*.hh, **/*.inl, **/*.d.ts). Zadano isključeno; stanje statusne trake jedina je promjena koja je uvijek uključena. - Prikaz Pokrivenosti pokazuje što je spajanje učinilo. Od 0.2026.63 vlastito ponovno izvođenje modula učitano povrh izvođenja cijelog projekta zamjenjuje brojeve tog izvođenja za datoteke modula, a svaki je redak imenovao izvještaj iz kojeg potječe — ali redak čiji su brojevi nadjačali stariji izvještaj izgledao je posve isto kao redak koji je izmjerio samo jedan od više izvještaja, i ništa nije govorilo koliki je dio izvještaja nadjačan. Sada je oznaka tracefilea takvog retka obrubljena; svaki redak tracefilea iznad stabla broji što je spajanje učinilo s njegovim datotekama („42 datoteke · 7 nadjačano novijim izvještajem“, „7 datoteka · nadjačava 7 u starijim izvještajima“); a klik na redak tracefilea ističe u cijelom stablu datoteke koje je izmjerio, prigušujući ostale, dok se ponovno ne klikne.
fuciniCoverage.coverageView.mergedMarks (zadano uključeno) isključuje obrub i isticanje; brojevi ostaju.
0.2026.68 — Timska mjesta traže kod pozivnice
2026-09-07
Popravljeno
- Od korisnika Business ili Enterprise sada se traži kod pozivnice, a ne kod tvrtke. Od 2. rujna poslužitelj licenci odbija zajednički kod tvrtke za Business ili Enterprise mjesto: mjesto zauzeto njime nije imenovalo nikoga, pa je svako timsko mjesto sada vezano uz adresu na koju je poslana pozivnica, a kod koji ga aktivira jest kod pozivnice
FCI1… iz te poruke. Upitnik je polje i dalje označavao kao „Kod tvrtke“, savjetovao da se za njega pita voditelja i prikazivao primjer FCB1… — šaljući ljude da zalijepe upravo onaj jedini kod koji više ne radi, a zatim im govorio da unesu kod tvrtke kad bi ga ostavili praznim. Na timskim planovima polje sada glasi „Kod pozivnice“, uputa kaže odakle kod dolazi i da zajednički kod tvrtke ne aktivira mjesto, primjer prikazuje oblik FCI1…, a poruka provjere traži kod pozivnice. Pro traži svoj pretplatnički kod pod tim imenom. Pro Plus je nepromijenjen: zajednički kod zadržava namjerno. Svih 17 jezika sučelja nosi novi tekst.
0.2026.67 — ${workspaceFolder} radi u obje postavke putanja
2026-09-05
Popravljeno
${workspaceFolder} sada radi u coverageFile.paths, kao što je oduvijek radio u coverageFile.defaultLocation. Dvije postavke stoje jedna uz drugu i samo je jedna dokumentirala varijablu, pa su je ljudi pisali u obje — a unos koji počinje s ${ nije apsolutan, pa je u glob pretrage ulazio doslovno ispod osnovne mape, nije pronašao ništa, i proširenje je javljalo da pokrivenosti nema. Takav se unos sada najprije proširuje, čime postaje apsolutna putanja, i jednostavno provjerava. U postavci ostaje onako kako je napisan, ne zapisuje se drugi put u drugom obliku kad se odabere ista datoteka, i sam nestaje iz postavke kad se ukloni iz prikaza Coverage.- Konfigurirana datoteka traga koje nema sada se javlja u izlazu. Unos s pogrešnom putanjom padao je na jedini način koji ništa nije prijavljivalo: „pokrivenost nije pronađena“, što se ne razlikuje od projekta koji je zaista nema.
[FUCINI_DISCOVERY] sada imenuje svaki unos za koji datoteka nije pronađena i putanju na kojoj je tražena, jednom po unosu umjesto pri svakom ponovnom učitavanju; unos sa zamjenskim znakom ne prijavljuje se, jer možda čeka da build nešto zapiše.
0.2026.66 — Grane, MC/DC i ocjena u CodeLensu funkcije
2026-08-29
Dodano
- CodeLens po funkciji sada prikazuje grane, MC/DC i složenu ocjenu, a ne samo retke i pogotke — „add: 92% pokriveno (12/13 redaka, 52 pogotka, ocjena 88%, grane 3/4 (75%), MC/DC 2/3 (66%))“. Svaki se od njih izostavlja za pojedinu funkciju kad datoteka traga ondje nema što prijaviti — build u čistom C-u bez podataka o granama, ili onaj koji nije instrumentiran s
-fcoverage-mcdc — umjesto da se prikaže zavaravajući 0/0; ocjena se jednako tako prikazuje samo uz barem jedno od druga dva, jer je s recima kao jedinom metrikom po definiciji isti broj kojim lens već počinje.
- Opis oznake podrijetla kaže prije koliko je vremena svaka datoteka traga zapisana, a ne samo njezinu vremensku oznaku — „Izmjerio module.info (2026-08-15 14:32 · prije 3 sata), zamjenjujući ono što je lcov.info (2026-08-01 09:10) o tome rekao.“ Zaokružuje se sve do „upravo sada“; nakon 30 dana prikazuje se samo apsolutni datum.
- Izjednačen mtime datoteka traga više ne prolazi u tišini. Dva izvještaja koja padnu u isti korak builda, ili datotečni sustav čija je razlučivost mtime-a grublja od sekunde, mogu prijaviti istovjetnu vremensku oznaku za datoteke koje oba mjere — prije je pobjednik padao na redoslijed iz
coverageFile.paths, bez ičega na zaslonu što bi to objasnilo. Izlazni kanal sada to kaže: [FUCINI_MERGE_TIE] imenuje obje datoteke traga i koliko datoteka dijele.
- „Show What Changed Since Last Run“ u izborniku
… retka datoteke, čim postoji prethodno pokretanje s kojim se može usporediti — ista razlika po datoteci koju Compare with Last Run već računa, usmjerena na onu jednu datoteku za koju ste pitali umjesto na cijelo stablo. Datoteka na kojoj se ništa nije pomaknulo to jasno kaže umjesto da ne ponudi ništa.
- Naredba Tune Colour Scale: isprobajte boje i pragove
colorScale.* na živom prikazu Coverage prije nego što ih usvojite. Svako uređivanje zapisuje se izravno u postavku — prikaz se ionako iscrtava iznova pri svakoj promjeni colorScale/threshold, pa je zapisivanje vrijednosti ujedno i pretpregled — a završno „Zadrži“ ili „Vrati izvorne vrijednosti“ zatvara krug.
- Praznine u pokrivenosti po datoteci u ploči Problems, jedan unos za svaku učitanu izvornu datoteku ispod
threshold.statement, iza nove postavke fuciniCoverage.problems.enabled (zadano isključene — zadani prag naredbi je 100). Svaki unos sažima što je nepokriveno („62% redaka pokriveno — 14 nepokrivenih redaka, 2 nepokrivene funkcije“) i nosi brzi popravak koji otvara koje god chat proširenje je instalirano (Copilot, Claude Code, …) s uputom da napiše test za tu prazninu — dijagnostika po retku preplavila bi Problems na stvarnoj bazi koda, pa ovo ostaje na razini datoteke, razini na kojoj čitatelj doista može nešto poduzeti.
Popravljeno
- Razlog za nedostajuću, nepodudarnu ili provjerenu datoteku u prikazu Coverage sada se može označiti i kopirati. Prije je živio samo u izvornom
title opisu retka, koji se — budući da je preglednikov vlastiti — ne može označiti; tko je htio zalijepiti točan razlog u prijavu greške morao ga je ručno pretipkati. Prelazak mišem sada prikazuje isti tekst u pravoj, oblikovanoj ploči, preko koje se može povući kao preko bilo kojeg drugog sadržaja stranice. Opis obične datoteke (samo njezina putanja) nije promijenjen.
- Funkcija čiji se popis parametara proteže kroz više redaka više se ne prijavljuje lažno kao pomaknuta.
detectMismatch dopuštao je da se zabilježeni redak deklaracije razlikuje od mjesta gdje se njezino ime doista nalazi za najviše dva retka — dovoljno za uobičajeno neslaganje između retka potpisa, retka povratnog tipa i otvarajuće vitičaste zagrade, ali ne i za višeredni popis parametara, koji ih može razmaknuti proizvoljno daleko. void LOG_Emit(...) — sedam parametara, jedan po retku — zabilježena na svojoj otvarajućoj zagradi, retku 163, prijavljivana je kao "LOG_Emit" is at line 3: najbliže tekstualno podudaranje, koje je slučajno bilo ime same funkcije spomenuto u zaglavnom komentaru datoteke, nigdje blizu retka 163 ni stvarne deklaracije u retku 156. Provjera sada prihvaća i ime pronađeno dalje unatrag kad se svaki redak između njega i zabilježenog retka čita kao jedna neprekinuta deklaracija — bez praznog retka, bez retka koji završava prethodnu naredbu ili blok — što popis parametara uvijek zadovoljava, a doista pomaknuta funkcija gotovo nikad. Gdje je nepodudaranje i dalje stvarno, prijavljeni redak sada je podudaranje najbliže zabilježenom, a ne uvijek prvo pronađeno u datoteci.
- Oznaka podrijetla više ne kaže „+N“. Učitavanje vlastitog izvještaja modula povrh šireg pokretanja označavalo je oznaku datoteke imenom modula i brojem drugih datoteka traga koje su je također pokrivale — zamišljeno kao „toliko ih je nadglasano“, čitalo se kao „ovi se izvještaji slažu“, a iz stabla se nije dalo razabrati na koji je od n zapravo mislila. Oznaka sada uvijek imenuje samo datoteku traga čiji su brojevi na zaslonu; opis i dalje navodi što je nadglasano, i kada.
- Oznaka podrijetla više ne gura ime datoteke uz koje stoji preko ruba ploče. Širina oznake bila je fiksna (
flex: none), pa je, čim bi retku ponestalo mjesta, ime datoteke upijalo cijeli manjak i prvo se skraćivalo, iako je oznaka manje važna od to dvoje. Oznaka sada popušta vlastitu širinu prije nego što ime datoteke izgubi i jedan znak; postotak i traka, koji su ionako iznad imena datoteke, nisu zahvaćeni.
0.2026.65 — Ponovno pokretanje modula zamjenjuje ono što je šire pokretanje reklo
2026-08-15
Promijenjeno
- Vlastito ponovno pokretanje modula zamjenjuje ono što je šire pokretanje o njemu reklo, umjesto da mu se pridoda. Učitavanje izvještaja cijelog projekta, a zatim povrh njega vlastitog izvještaja jednog modula, zbrajalo je njihove brojeve pogodaka za svaku datoteku koju su dijelili — ponovno pokretanje samo testova tog modula napuhavalo je brojeve koje je šire, sada zastarjelo pokretanje već prijavilo, umjesto da ih osvježi. Datoteka traga s najnovijim mtime-om na disku sada pobjeđuje bez ostatka za svaku datoteku koju mjeri: naredbe, grane, deklaracije i sažeci po datoteci (sažeci grana, MC/DC-a, funkcija, poziva funkcija, objekata i mutacija) svi dolaze samo iz tog izvještaja, bez obzira na to gdje se koja putanja nalazi u
coverageFile.paths — ponovno pokretanje modula pobjeđuje jer doista jest novije, a ne zato što se slučajno učitava zadnje. Datoteka traga koja za neku datoteku uopće ne prijavljuje naredbe — izvoz objektnog koda iz TRACE32-a, Strykerov izvještaj o mutacijama učitan pokraj pravog — i dalje pridonosi samo sažetak koji doista nosi, ostavljajući netaknutima retke/grane iz ranijeg izvještaja; taj je slučaj nepromijenjen. Time se uklanja i dugogodišnja greška zbog koje je sažetku MC/DC-a (ili funkcija/poziva funkcija/mutacija) po datoteci, izmjerenom u dva pokretanja, nazivnik bio zbrojen zajedno s brojnikom, podcjenjujući stvarni postotak. Opis oznake podrijetla sada kaže „zamjenjujući ono što je _ o tome rekao“ umjesto „zbrojeno“.
Popravljeno
- Dugo ime datoteke u prikazu Coverage sada se skraćuje umjesto da se prelijeva. Rasponu imena u retku nedostajao je
min-width: 0, jedina deklaracija koja dopušta da overflow/text-overflow: ellipsis flex-stavke doista proradi — bez nje je dugo ime zadržavalo punu širinu čim bi se ploča dovoljno suzila, prolazeći ispod oznake podrijetla, postotka i trake koji slijede za njim.
0.2026.64 — Razvrstavanje prikaza Coverage po ocjeni
2026-08-01
Dodano
- Razvrstajte prikaz Coverage po ocjeni, a ne samo po imenu. Svaki redak već nosi ocjenu WHM i raščlambu po metrici; pronaći najgoru datoteku u velikom stablu značilo je čitati abecedni popis od vrha u potrazi za njom. Padajući izbornik pokraj Sažmi sve / Proširi sve sada nudi Ime datoteke, Složena ocjena, Retci, Grane i MC/DC — svaki način osim Ime datoteke ispreplće mape i datoteke zajedno, od najgorih prema vlastitom postotku te metrike, pa se loše testirana mapa rangira posve jednako kao loše testirana datoteka umjesto da bude grupirana dalje od nje. Datoteka bez podataka za metriku u prikazu (format koji nikad ne prijavljuje grane, recimo) razvrstava se na dno umjesto da se čita kao 0%. Odabir se upisuje u novu postavku
fuciniCoverage.coverageView.sortBy čim je napravljen, pa preživljava ponovno učitavanje prozora umjesto da uvijek počinje iznova od Ime datoteke.
Popravljeno
- Višeredni potpis funkcije više se lažno ne označava kao „pomaknut“. Istanbulov
fnMap daje funkciji dvije reference na redak — gdje joj stoji ime i gdje počinje tijelo — a raščlanjivač je za provjeru nepodudaranja, koja poslije traži ime u izvornom tekstu, davao prednost retku tijela. Za svaku funkciju čiji se popis parametara proteže kroz više od dva retka (uobičajeno u bazi koda prelomljenoj na 100 stupaca) stvarni je redak imena bio predaleko od zabilježenog, a datoteka je u prikazu Coverage blijedjela s lažnim upozorenjem „više ne odgovara svojoj pokrivenosti“. Raščlanjivač sada daje prednost retku samog imena, što je provjera nepodudaranja oduvijek i tražila.
0.2026.63 — Svaki redak imenuje svoju datoteku traga
2026-07-20
Dodano
- Svaki redak kaže koja ga je datoteka traga izmjerila. Učitavanje izvještaja jednog modula povrh cjelovitog pokretanja iste su datoteke izmjerene dvaput, a stablo nije govorilo koji izvještaj redak čita. Kada je učitano više datoteka traga, svaki redak datoteke sada nosi ime izvještaja koji ju je izmjerio — posljednjeg učitanog, ako ih je bilo više — s
+1 za svaki drugi i opisom koji ih imenuje. Spajanje zbraja njihove pogotke umjesto da jedan pobijedi, i opis to kaže. Uz samo jednu datoteku ništa se ne crta, jer ne bi bilo što razlikovati.
Promijenjeno
- Vlastita stranica proširenja imenuje svaku postavku, s njezinom stvarnom zadanom vrijednošću. Dvadeset postavki uopće nije imalo redak — jezik, tri praga, jedna težina i petnaest prekidača brzih radnji — a redak telemetrije tvrdio je da je zadano uključena iako je već neko vrijeme isključena. Test sada uspoređuje stranicu s manifestom, uključujući zadane vrijednosti.
Popravljeno
- Ponovna provjera izvora pod
files.watcherExclude, dodana u prethodnom izdanju, sada sluša staleWarning.enabled kao i ostatak te provjere, a ne vlastito ime postavke.
0.2026.62 — Explorer ostaje netaknut, utišani izvori ponovno se provjeravaju
2026-07-06
Promijenjeno
- Explorer ostaje netaknut. Oznake pokrivenosti pokraj datoteka u Exploreru prema zadanome su isključene. Taj stupac pripada onome tko ga koristi — VS Code ondje stavlja gitove M i U, a stane samo jedna oznaka — a prikaz Pokrivenost navodi iste datoteke s istim brojevima, na mjestu koje za njih i postoji.
explorerBadges.enabled vraća ih nepromijenjene.
Popravljeno
- Izvor pod
files.watcherExclude također se ponovno provjerava. Živu podudarnost datoteke i njezine pokrivenosti pokreću spremanja i nadzornik datotečnog sustava, a on šuti o svemu isključenome — ponajviše o generiranim izvorima u build/, gdje je zastarjelu oznaku najteže primijetiti. Te se datoteke sada ispituju u istom dvosekundnom taktu kao i datoteke traga i ponovno čitaju samo kad se doista pomaknu. Preko dvjesto njih izlaz to kaže umjesto da potroši takt.
0.2026.61 — Jedno pitanje o pokretaču testova, a ne jedno po pokretanju
2026-06-09
Dodano
- Za pokretač testova pita se jednom, a ne pri svakom pokretanju. Radni prostor s više prepoznatih pokretača — recimo jest konfiguracija i
go.mod — stavljao je izbornik pred svaki Run Tests with Coverage, tražeći pritisak tipke za odluku koja je već donesena. Odgovor se sada pamti za radni prostor, i upit to kaže. Forget the Test Runner vraća pitanje, a zapamćeni pokretač kojega radni prostor više nema zanemaruje se umjesto da se pokrene.
Promijenjeno
- Vlastita stranica proširenja imenuje svaku naredbu. Četrnaest od trideset četiri ispalo je iz njezine tablice — opisane su ovdje i u vodiču, ali ne i na stranici koja se čita prije instalacije. Sada su navedene sve, a test to održava.
0.2026.60 · build 3 — Poništavanje ponovno uklanja točke
2026-06-01
Popravljeno
- Poništavanje ponovno uklanja točke s uređenih redaka. Međuspremnik uređen nakon pokretanja pokazuje sive točke na prepisanim recima, a pokrivenost se s njih povlači. Poništavanje tih uređivanja ostavljalo je točke gdje jesu: brojala se svaka promjena, uključujući onu koja je tekst vratila. Sada se pamti što je međuspremnik sadržavao prije prvog pritiska tipke, i čim to opet sadrži, točke nestaju, a brojevi opet vrijede za njega.
- Brojevi izdanja provjeravaju se međusobno. Manifest, gornji unos dnevnika promjena i oznaka izdanja nose verziju i međuverziju, sva tri upisuju se rukom i već su se razišli. Skup testova sada ih uspoređuje i provjerava da unosi idu od najnovijeg, svaki sa stvarnim datumom.
0.2026.59 — Uklanjanje koje traje
2026-05-12
Promijenjeno
- Uklonjena datoteka traga ostaje uklonjena. Micanje datoteke s popisa u prikazu Pokrivenost trajalo je točno koliko i prozor: bez ičega podešenog otkrivanje se vraća na poznata imena i sljedeće bi jutro opet našlo
lcov.info, a jedini način da se kaže drukčije bio je podesiti putanju kako bi se jedna isključila. Odluka se sada pamti za radni prostor. Poništava se ponovnim odabirom datoteke ili njezinim navođenjem u coverageFile.paths — datoteka koju postavka imenuje nikad se ne zadržava, pa ništa ne može nestati a da to netko nije rekao.
Popravljeno
- Brže iscrtavanje uređenog međuspremnika. Popis prepisanih redaka pri svakom se iscrtavanju iznova računao iz svih zabilježenih uređivanja, pa je duga datoteka uređivana cijelo poslijepodne plaćala broj redaka puta broj uređivanja za odgovor koji se od zadnjeg pritiska tipke nije promijenio. Sada se računa jednom po pritisku.
0.2026.58 · build 2 — Pokretanje testova pamti svoju datoteku traga
2026-05-01
Promijenjeno
- Pokretanje testova pamti svoju datoteku traga, kao i ručni odabir. Run Tests with Coverage učitavao je ono što je pokretanje zapisalo, a zatim pitao treba li to dodati u
coverageFile.paths. Ručno odabrana datoteka ondje se sama upisuje od 0.2026.56, a pokretanje testova isti je čin drugim putem, pa je sada upisuje jednako. Objema upravlja jedna postavka, coverageFile.rememberPicks; redak datoteke traga u prikazu Pokrivenost mjesto je s kojega obje ponovno silaze.
Popravljeno
- Pozadinski mjerači vremena staju kad stane i proširenje. Nadzornik datoteke traga otpuštao se s prozorom, ali dvosekundno ispitivanje iza njega i svaka neizvršena provjera izvora obični su mjerači vremena koje ništa ne otpušta. Isključivanje proširenja, ili ponovno učitavanje prozora s isključenim proširenjem, ostavljalo ih je da rade i čitaju radni prostor s kojim proširenje više nije imalo posla.
0.2026.57 · build 4 — Označeni pregled uživo, nacrtane zastave, svaki format u dijalogu za odabir
2026-04-24
Dodano
- Pregled uživo kaže što prikazuje. Pregled u ploči postavki sada počinje s Izvođenje: coverage/lcov.info · 12 datoteka i, kad aktivni uređivač prikazuje datoteku koju izvođenje pokriva, s Aktivna datoteka: src/a.c s vlastitom presudom te datoteke ispod presude izvođenja. Prati uređivač i svako učitavanje, prema onome što obrazac trenutno sadrži — uključujući nespremljene izmjene. S pločom ispred, klik u prikazu Pokrivenost prebacuje pregled na tu datoteku umjesto da je otvori.
- Dijalog za odabir imenuje svaki format. Najprije Svi formati pokrivenosti, zatim LCOV; JSON (llvm-cov, Istanbul/nyc, coverage.py, SimpleCov, Coveralls, gcov, xccov, Stryker); XML (Cobertura, JaCoCo, Clover, OpenCover, GNATcoverage, Bullseye, SonarQube, VectorCAST, TRACE32, EMMA, UCIS/UCDB, NCover, dotCover, PIT); Go profil pokrivenosti; gcov ispis i Testwell CTC++ — a
.lcov, .gcov, .txt i .coveragexml više nisu zasivljeni.
Promijenjeno
- Opisi u statusnoj traci nose ljestvicu boja. Trake metrika u opisima izvođenja i datoteke uzimaju tri boje iz
colorScale.*, stupnjevane prema vlastitom pragu svake metrike gdje je postavljen, a inače prema granicama ljestvice; oznake presude zadržavaju svoje fiksne boje stanja.
- Nacrtane zastave u postavci jezika. Emoji zastave iz 0.2026.56 na Windowsu se prikazuju kao dva gola slova. Padajući popis sada imenuje svaki jezik njegovim vlastitim imenom — Nederlands (nl) — s redom malih nacrtanih zastava ispod koje odabiru u popisu.
0.2026.56 · build 3 — Odabiri se pamte, datoteke traga u prikazu Pokrivenost, zastave u postavci jezika
2026-04-08
Dodano
- Odabir se pamti. Datoteka odabrana s Pick Coverage File živjela je samo u prozoru u kojem je odabrana. Sada sama ide u
coverageFile.paths u postavkama radnog prostora — relativno prema osnovnoj mapi ako je u njoj, inače apsolutno — pa je sljedeći prozor učitava, a promatrač ponovno učitava. coverageFile.rememberPicks (zadano uključeno) zadržava staro ponašanje za one koji ga žele. Apsolutni unos u toj postavci sada imenuje jednu datoteku gdje god bila.
- Datoteke traga u prikazu Pokrivenost. Iznad stabla, po jedan redak za svaku učitanu datoteku traga s brojem datoteka i gumbom za uklanjanje koji je vadi iz izvođenja i iz postavki; gumb Odaberi… pokraj njih dodaje novu. Uklanjanje zadnje datoteke traga briše izvođenje.
- Zastave u postavci jezika. Padajući popis jezika u ploči postavki prikazivao je gole kodove; svaki unos sada nosi zastavu i vlastito ime jezika — 🇳🇱 Nederlands (nl), 🇯🇵 日本語 (ja), 🌐 Automatski.
0.2026.55 — Zadnji redak PHP datoteke nije pokrivenost iza kraja
2026-03-27
Popravljeno
- Zadnji redak PHP datoteke više se ne računa kao pokrivenost iza kraja. Xdebug i PCOV bilježe implicitni return na kraju datoteke u retku nakon zadnjeg prijeloma, pa php-code-coverage upisuje pogodak u „redak 252” datoteke od 251 retka — a provjera nepodudaranja to je zvala proturječjem na svakoj PHP datoteci sa završnim prijelomom. Jedan redak iza završnog prijeloma sada je dopušten; referenca dalje od toga, ili iza datoteke bez završnog prijeloma, i dalje je proturječje kakvo je bilo.
0.2026.54 · build 2 — Redak probe u What Community Includes
2026-03-24
Dodano
- Redak probe u What Community Includes, u izdanju Community. To izdanje nikad nije imalo probu, pa njegov popis sada počinje sa Započni 14-dnevnu probu Pro izdanja…, što otvara Pro unos; aktivacija Pro izdanja zatim nudi uklanjanje Community izdanja s puta. Community ostaje besplatan što god se odlučilo.
0.2026.53 — Show Worst-Covered Folders
2026-03-03
Dodano
- Show Worst-Covered Folders. Odgovor na razini mapa na Show Worst-Covered Files: svaka mapa poredana po pokrivenosti svega ispod nje, najgora prvo, iz istog indeksa iz kojeg se crtaju značke Explorera; odabir otkriva mapu u Exploreru. U izborniku statusne trake s
quickActions.worstCoveredFolders.
0.2026.52 — Provjera pragova u ploči Problemi
2026-01-23
Dodano
- Provjera pragova u ploči Problemi. S uključenim
compliance.diagnostics svaka nedosegnuta threshold.* metrika jedna je pogreška u Problemima, na datoteci traga koja ju je promašila, osvježena pri svakom učitavanju i naredbom Check Coverage Thresholds, obrisana kad provjera prođe. Zadano isključeno, jer je isporučeni prag naredbi 100.
Promijenjeno
- Opis
watch.enabled više ne obećava upit. Još je govorio da se besplatnu razinu pita prije ponovnog učitavanja — istina do 0.2026.48, otada ne. Prepisan na svih 18 jezika.
0.2026.51 · build 2 — Run Tests with Coverage
2025-12-08
Dodano
- Run Tests with Coverage. Prepoznaje vitest, jest, pytest, go, cargo, dotnet, maven, gradle, phpunit ili ctest iz korijena radnog prostora, pokreće ga s uključenom pokrivenošću u zadatku terminala, učitava što je zapisao bez obzira jesu li testovi prošli i jednom nudi dodavanje te putanje u
coverageFile.paths kako bi od tada učitavanje obavljao promatrač. Više pokretača nudi se na izbor; nijedan ne šalje na recepte.
0.2026.50 — Pokrivenost prati tekst u uređenom međuspremniku
2025-10-23
Dodano
- Pokrivenost prati tekst u uređenom međuspremniku. Uređivanja svakog otvorenog međuspremnika od učitavanja izvođenja se čuvaju, a svaka površina koja čita brojeve redaka izvođenja — broj pogodaka pri prelasku mišem, MC/DC traka, trokut „od zadnjeg izvođenja”, CodeLens, Next Uncovered — čita kroz njih: oznaka se pomiče sa svojim retkom i povlači s prepisanog retka, gdje mala siva točka kaže zašto.
dirtyMarks.enabled isključuje točke.
0.2026.49 — Od zadnjeg izvođenja, u rubu
2025-09-26
Dodano
- Od zadnjeg izvođenja, u rubu. Svaki redak izvršen u prethodnom izvođenju, a ne u ovom, nosi crveni trokut u rubu uređivača, svaki redak koji je otišao u suprotnom smjeru zeleni, svaki s prugom na preglednom ravnalu i brojem pogodaka pri prelasku mišem. Nepromijenjeni retci ne prikazuju ništa.
sinceLastRun.enabled to isključuje.
Promijenjeno
- Osnova za „zadnje izvođenje” preživljava ponovno pokretanje. S uključenim
history.enabled najnovije izvođenje iz povijesti preuzima tu ulogu pri prvom učitavanju prozora, pa build završen prije otvaranja prozora i dalje pokazuje što je promijenio — u rubu i u Compare with Last Run.
0.2026.48 · build 6 — Samostalno ponovno učitavanje posvuda, oznaka prati datoteku, točna razlika pri prelasku mišem
2025-09-19
Dodano
- Presuda o datoteci ostaje ažurna nakon učitavanja. Datoteka se provjeravala u odnosu na svoju pokrivenost jednom, pri učitavanju datoteke traga, i nikad više: uređujte je cijelo poslijepodne i rubovi su i dalje crtali brojke o verziji koja više ne postoji. Sada spremanje u uređivaču odmah ponovno provjerava tu datoteku, a promjena izvan uređivača —
git checkout, formater, generator — ponovno je provjerava s diska trenutak kasnije. Datoteka koja počne proturječiti svojem izvođenju dobiva oznaku; checkout koji vrati izmjerenu verziju uklanja je.
- Točna razlika, pri prelasku mišem. Gdje datoteka više ne odgovara svojoj pokrivenosti, prikaz Pokrivenost i opis u Exploreru kažu točno što je to dokazalo: redak kako sada glasi naspram onoga što je izvještaj zabilježio ako je datoteka traga čuvala tekst, redak i neuspjeli kontrolni zbroj ako je čuvala sažetak, pokrivenost iza kraja datoteke, funkcija koja više nije ondje gdje je izvještaj smješta. Isti detalj ide u izlazni kanal, jedan redak po datoteci, kamo vodi Prikaži koje na rezultatu učitavanja.
- Prekidač za značke u Exploreru.
explorerBadges.enabled (zadano uključeno) skriva rezultat, ✓ i ⚠ uz svaku pokrivenu datoteku u Exploreru, a s njima i opis po metrici. Rubovi, statusna traka i prikaz Pokrivenost ostaju nepromijenjeni.
Promijenjeno
- Svaka razina samostalno ponovno učitava kad se datoteka traga promijeni. Od 2026-09-02 besplatna se razina zaustavljala na upitu otkrivena nova pokrivenost — učitati?, dok su plaćene licence ponovno učitavale tiho. Build završi, brojke su nove, a tko je uključio praćenje već je odgovorio na to pitanje — pa upita više nema ni na jednoj razini, kao ni obavijesti koja ga je objašnjavala.
- Učitavanja koja proizvod obavlja sam više se ne broje u dnevno ograničenje besplatne razine. Ponovno učitavanje od strane promatrača ili otkrivanje pri pokretanju nije učitavanje koje je netko zatražio; njihovo brojanje potrošilo bi kvotu Community instalacije u jednom jutru testova i zatim ostavilo staro izvođenje na zaslonu bez ičega što bi to reklo. Ograničenje sada mjeri samo naredbu i birač.
- Sama promijenjena vremenska oznaka više ne označava datoteku. Upozorenje N datoteka promijenjeno od ovog izvođenja dolazilo je iz mtime svakog izvora, a
git pull ili formater mijenja svaki mtime bez promjene onoga što je izmjereno. Uklonjeno je, zajedno sa svojom oznakom u statusnoj traci. Datoteka se sada naziva promijenjenom samo kad njezin sadržaj proturječi izvođenju, a statusna traka, rezultat učitavanja i novi izlazni redak FUCINI_MISMATCH_001 čitaju upravo to. staleWarning.enabled zadržava ime i sada opisuje točno provjeru sadržaja.
- Praćenje mape pod
files.watcherExclude navodi se u izlazu. Izlaz builda prvo je što se isključuje iz VS Code promatrača, nakon čega novo izvođenje primjećuje samo prozivanje svake 2 s. Izlazni kanal sada imenuje mapu i glob kad promatrač krene.
0.2026.47 · build 2 — Nepovezane putanje na zaslonu, savjet pri prvom pokretanju, još dvije tipke
2025-08-09
Dodano
- Savjet pri prvom pokretanju za radni prostor bez ičega za učitati. Praćenje je uključeno zadano, a početno učitavanje je tiho, pa svježa instalacija u projektu bez datoteke traga nije govorila ništa. Prvo tiho učitavanje koje ne nađe ništa sada to kaže — jednom, zauvijek — s dvjema stvarima koje vrijedi učiniti: ručno odabrati datoteku pokrivenosti ili otvoriti recepte kako je proizvesti svojim alatima. Učitavanje pokrenuto ručno zadržava vlastitu poruku.
- Tipke za Toggle Annotated Source i Load Coverage.
Alt+A prebacuje aktivnu karticu između izvora i njegova označenog prikaza; Alt+Shift+R ponovno otkriva i učitava pokrivenost (Ctrl+Alt+A / Ctrl+Alt+R na macOS-u). Mogu se prerasporediti kao dvije iz 0.2026.45.
Promijenjeno
- Putanje koje ne odgovaraju ničemu u radnom prostoru broje se na zaslonu. Putanja iz datoteke traga koja se ne razrješava ni na jednu datoteku radnog prostora učita se i nikad ne zasvijetli — najčešće »radilo je, ali ništa se ne vidi« koje postoji — a dosad je jedini trag bio redak
FUCINI_REMAP_001 u izlaznom kanalu, s pravilom pathRemap koje bi to popravilo, nepročitan. Rezultat učitavanja sada ih broji, s gumbom Koje? za imena i predloženo pravilo te Otvori postavku pathRemap za mjesto kamo ga upisati. - Izbornik datoteka u izborniku statusne trake imenuje formate koje čita. Njegov opis još je nabrajao pet formata iz prvog izdanja; sada kaže dvadeset pet, od lcov, Cobertura i JaCoCo do gcov, llvm-cov, TRACE32 i izvještaja o mutacijama.
0.2026.46 — Izlaz iz sukoba izdanja i tiše ograničenje
2025-08-06
Promijenjeno
- Oba izdanja instalirana: dva gumba umjesto uputa. Kad su Pro i Community oba prisutna, nijedno se ne može aktivirati — definiraju iste naredbe i prikaze — a poruka o tome prije je završavala uputama do prikaza Proširenja. Oba rješenja su po jedna naredba, pa su sada gumbi: Zadrži ovaj deinstalira drugo izdanje i nudi ponovno učitavanje; Prikaži oba u Proširenjima otvara prikaz Proširenja točno na ta dva. Ako deinstalacija ne uspije, ponovno učitavanje se svejedno nudi — ono ionako odlučuje koje je izdanje aktivno.
- Ograničenje korištenja objavljuje se u cijelosti jednom, zatim samo u statusnoj traci. Prvi put kad se dosegne Community ograničenje zaslužuje cijeli odgovor — brojke, plan, otključavanje telemetrijom, popis onoga što razina uključuje. Peti put, deset minuta kasnije, ne. Unutar sesije daljnji udarci u isto ograničenje stavljaju osmosekundni redak u statusnu traku i ništa ne prekidaju. Unos ključa počinje iznova, jer je nova licenca novi skup ograničenja.
0.2026.45 — Tipke za Next / Previous Uncovered
2025-07-26
Dodano
- Next / Previous Uncovered imaju tipke. To su dvije naredbe koje se pritišću iznova i iznova dok se čita datoteka, a dosad je svaki pritisak značio otvoriti paletu naredbi i upisati ime.
Alt+N skače na sljedeći nepokriveni raspon, a Alt+P na prethodni (Ctrl+Alt+N / Ctrl+Alt+P na macOS-u, gdje Option upisuje znakove). Obje vrijede samo u fokusiranom uređivaču teksta i mogu se prerasporediti pod Keyboard Shortcuts kao i svaka druga zadana.
0.2026.44 · build 3 — Ograničenja besplatne razine, u jednom popisu
2025-07-24
Dodano
- Što Community uključuje, kao jedan popis. Besplatna razina ograničava osam radnji i uskraćuje dvanaest značajki, a svaka od tih odluka provodila se na vlastitim vratima — pa je jedini način da se nauči oblik razine bio naletjeti na svaki zid redom, usred posla. Nova naredba, What Community Includes, prikazuje sve odjednom: svaku ograničenu radnju s time koliko je dana ili mjeseca već iskorišteno, svaku uskraćenu značajku po imenu, i dva načina da se to ukloni — plaćeni plan ili otključavanje telemetrijom.
- Nudi se gdje god se pitanje pojavi. Stavka u izborniku statusne trake, gumb u natpisu licence prikaza Coverage i gumb na dvjema porukama koje Community instalacija susreće pred zidom — dosegnuto ograničenje korištenja i ova radnja nije uključena. Redci se izvode iz istog skupa prava koji provode vrata, pa je ono što popis kaže ono što će se dogoditi.
Promijenjeno
- Način praćenja kaže što će raditi na besplatnoj razini. Stavka statusne trake svima je obećavala »automatski ponovno učitati pokrivenost«, a na Communityju je to obećanje koje pratitelj ne drži — primijeti i pita. Stavka to sada ondje kaže, a naredba se zove Toggle Tracefile Watch, jer »Toggle Watch« nikad nije rekao što se prati. Samo ponašanje je nepromijenjeno.
0.2026.43 · build 3 — Neuspjelo učitavanje kaže zašto, a skrivene datoteke se broje
2025-06-25
Promijenjeno
- Datoteka traga koja se ne učitava sada kaže zašto i što pokušati. Svaki neuspjeh davao je istu obavijest — »no coverage could be parsed. See output.« — s razlogom jedan kanal dalje kao kod i poruka parsera. Obavijest sada počinje datotekom i razvrstava odbijanje prema tome što je bilo: nije u formatu koji ovo proširenje čita, nije ispravno oblikovana (uobičajeni uzrok je build koji ju je još zapisivao), ispravno oblikovana, ali ništa ne bilježi (izvođenje nije izvršilo instrumentirani kod) ili nije se mogla pročitati. Riječi samog parsera idu uz to, više datoteka se broji, a izlazni kanal se nudi iza gumba Prikaži izlaz umjesto da se prisilno otvara.
- Datoteke koje datoteka traga navodi, ali u kojima nema što mjeriti, sada se broje na zaslonu. Zaglavlje samo s deklaracijama uvijek je ostajalo izvan prikaza Coverage umjesto da dobije 100% od 0 od 0 — a njegovo ime pisalo se u izlazni kanal, i nigdje drugdje. Rezultat učitavanja sada kaže N datoteka bez ičega za instrumentiranje nije prikazano, s gumbom Koje? koji otvara kanal s imenima.
0.2025.42 · build 3 — NCover i dotCover, .NET pokrivenost koja nije imala kamo
2025-06-08
Dodano
- NCover i JetBrains dotCover. Coverlet-ova Cobertura i OpenCover ovdje su se već čitali, što pokriva većinu novog .NET rada i ništa od starijeg. Verzija koja i dalje piše NCover-ov
Coverage.xml, ili tim koji mjeri dotCoverom, imali su pokrivenost na disku koju ovo proširenje nije moglo otvoriti. Nijedan format ne treba pretvarač: oba već nose imena datoteka i brojeve redaka. - Isključena NCover točka se izbacuje, a ne broji kao neizvršena.
excluded="true" označava kod namjerno izuzet iz mjerenja — član s [ExcludeFromCodeCoverage], ili filtar NCoverExplorera. Brojati ga kao nepokriven značilo bi da isključenje snižava broj koji je trebao ispraviti. - dotCover treba
/ReportType=DetailedXML. Njegovo drugo XML izvješće je zbirni prikaz bez ijednog broja retka; to se izvješće prepoznaje i odbija uz naznaku koja zastavica to rješava, umjesto da propadne kao nepoznat format. dotCover bilježi samo da/ne po naredbi, nikad broj posjeta, pa pokrivena naredba daje jedan pogodak.
0.2025.41 · build 4 — Mutacijsko testiranje: PIT i Stryker
2025-05-28
Dodano
- Mutacijsko testiranje. Pokrivenost kaže da se redak izvršio; ocjena mutacija kaže da je nešto zakazalo kad je taj redak promijenjen. Skup testova može izvršiti svaki redak datoteke i ne otkriti nijednu od ubačenih grešaka, a nijedan broj pokrivenosti to neće reći. PIT pokriva Javu, Kotlin i Scalu; Stryker pokriva JavaScript, TypeScript, C# i Scalu.
- Nikad se ne usrednjuje s pokrivenošću. Miješanje "je li se ovaj redak izvršio" s "je li nešto primijetilo kad sam ga promijenio" ne odgovara ni na jedno, pa nema nikakvu težinu u složenoj ocjeni i provjerava se zasebno pragom
fuciniCoverage.threshold.mutation — zadano 0, jer je ocjena mutacija cilj koji treba podizati, a ne prag koji treba prijeći prvog dana. - Mutant koji nikad nije dobio pošteno izvođenje broji se u nijednoj polovici. PIT-ov
NON_VIABLE te Strykerovi CompileError i Ignored mutacije su koje alat nije mogao napraviti; brojati ih kao neotkrivene kaznilo bi skup testova za grešku koja mu nikad nije bila ponuđena.
0.2025.40 — gcovov tekstualni ispis, za prevoditelje starije od GCC-a 9
2025-05-16
Dodano
- Anotirani ispis
.gcov. gcov --json-format stigao je s GCC-om 9, a ugrađeni unakrsni prevoditelji često su mnogo stariji; dosad je odgovor bio prvo instalirati lcov ili gcovr. Brojač izvršenja ima pet zapisa, a samo su dva brojevi, a napomene branch/call/function pripadaju susjednom retku umjesto svom vlastitom — sve se to sad ispravno čita. - Napomene poziva postaju pokrivenost mjesta poziva.
call N returned X% upravo je mjera poziva funkcija dodana u 0.2025.38, koju je ovaj format nosio davno prije nego što je ovdje postojalo mjesto za nju.
0.2025.39 · build 2 — Pokrivenost objektnog koda, a s njom i assembler
2025-04-27
Dodano
- Pokrivenost objektnog koda — koliko se izgrađene binarne datoteke doista izvršilo. Jedina mjera ovdje koja se uopće ne mjeri iz izvora: dolazi od programa za ispravljanje pogrešaka koji promatra tok instrukcija na stvarnom cilju, bez ikakvog učinka sonde na vrijeme. To je ujedno iskren odgovor na pitanje "pokriva li ovo assembler?" — ručno pisani assembler nikad se ne instrumentira, a nijedna druga mjera ovdje do njega ne dopire.
- To je zahtjev, a ne još jedna težina. Pokrivenost objektnog koda obuhvaća pokrivenost naredbi — 100% ovdje znači 100% ondje, ali ne obrnuto — pa nema nikakvu težinu u složenoj ocjeni i umjesto toga se provjerava pragom, upravo onako kako DO-178C razine A to traži uz MC/DC.
- Razlika je ono što se isporučuje. Izvođenje sa 100% pokrivenosti redaka i manje od 100% pokrivenosti objektnog koda točno je locirala kod koji je proizveo prevoditelj, a za koji vaš izvor ne stoji; kartica sukladnosti kaže "312 bajtova nikad izvršeno, uz 100% pokrivenosti redaka", umjesto da to sakrije kao "94%". Obrnuti slučaj — cijela binarna datoteka prijavljena kao izvršena dok njezin izvor nije — prijavljuje se kao proturječje, ne kao niska ocjena.
0.2025.38 · build 2 — Pokrivenost poziva funkcija, i VectorCAST i TRACE32 dovršeni
2025-04-01
Dodano
- Pokrivenost poziva funkcija — je li svako mjesto poziva izvršeno. Drugačije pitanje od pokrivenosti funkcija: funkcija pozvana jednom s jednog od svoja tri mjesta poziva potpuna je pod Funkcijama, a ovdje trećinski potpuna. VectorCAST, TRACE32 i Cantata svi su to prijavljivali dok ovaj model nije imao kamo staviti broj.
- To dovršava VectorCAST i TRACE32. Ranija izdanja namjerno su odbijala uklopiti te podatke u pokrivenost grana, jer napuhavanje postotka grana napuhava broj koji završi u reviziji. Oba formata sad učitavaju ono što su oduvijek slala.
Promijenjeno
- Vrata sukladnosti i ponderirana ocjena sada poznaju sedam mjera, ne šest — dvije nove postavke,
fuciniCoverage.whmWeights.functionCalls i fuciniCoverage.threshold.functionCalls, s opisima na svih 17 jezika.
0.2025.37 — Pokrivenost funkcija kao broj, ne samo kao mjesto
2025-02-16
Promijenjeno
- Pokrivenost funkcija sada se broji i kad alat ne kaže gdje su funkcije. TRACE32-ov
func izvoz, VectorCAST-ovi samozatvarajući elementi <method> i EMMA-in zbirni method, % svi navode broj funkcija bez ijednog mjesta za CodeLens — sva tri su se odbacivala pri ulasku. Deklaracije ostaju preferirani izvor gdje postoje; broj se sad koristi kao zamjena gdje ih nema.
0.2025.36 · build 4 — UCIS i Aldec UCDB, i novi parseri pokriveni testovima do retka
2025-02-03
Dodano
- UCIS i UCDB XML — VHDL i Verilog, izravno iz simulatora. Dva dokumenta odgovaraju ovom imenu, a projekt ima onaj koji je napisao njegov simulator, pa se čitaju oba: Accellerin standardni oblik razmjene
<UCIS> te Aldecov vlastiti ux:ucdb, što acdb2xml zapravo proizvodi iz Active-HDL-a i Riviera-PRO-a. Pokrivenost naredbi i grana prenosi se; toggle, FSM, tvrdnja i funkcionalna pokrivenost ne čitaju se, a dokument koji sadrži samo to javlja to umjesto da se učita prazan. - Otvoreni VHDL ovdje već nije trebao ništa: GCC pozadina GHDL-a instrumentira s
-Wc,-ftest-coverage -Wc,-fprofile-arcs, a rezultat prolazi kroz gcov, gcovr ili lcov. Ovo izdanje je za komercijalne simulatore.
0.2025.35 · build 3 — EMMA XML, i Delphi napokon ima put ovamo
2025-01-22
Dodano
- EMMA XML. Delphi ovdje uopće nije imao put — ni lcov, ni Cobertura — a DelphiCodeCoverage piše upravo ovu shemu s
-xml. To je ujedno ono što dobar dio starijeg Java alata i dalje proizvodi, pa jedan parser otvara jezik i istovremeno raščišćava naslijeđe. - Dodajte
-xmllines i izvješće dobiva prave brojače pogodaka po retku, pa oznake rade; bez toga postoji samo zbirni postotak, koji dobiva sažetak datoteke i bez oznaka umjesto nagađanja. Naziv paketa s točkama postaje direktorij samo kad je datoteka izvor Java obitelji; u Delphi izvješću isto to polje je naziv jedinice, a dodavanje prefiksa izmislilo bi mapu koju nitko nema na disku.
0.2025.34 · build 3 — Lauterbach TRACE32, jedna mjera po izvozu
2025-01-01
Dodano
- TRACE32 izvozi pokrivenosti.
COVerage.EXPORT.ListModule zapisuje ono što je program za ispravljanje pogrešaka izmjerio iz traga na samom cilju — ne instrumentirani izvor, već tok instrukcija koji je procesor doista izvršio, na stvarnom cilju, bez ikakvog učinka sonde na vrijeme. Jedan izvoz nosi jednu mjeru odjednom: stmt postaje pokrivenost redaka; dec/cond postaju pokrivenost grana; mcdc postaje MC/DC. Učitajte dva izvoza istog izvođenja i oni se spajaju po nazivu modula. - Izvozi s pokrivenošću
func, call ili object odbijani su poimence umjesto da se učitaju prazni, uz naznaku koju mjeru datoteka sadrži — sva tri sad imaju dom, redom u 0.2025.37, 0.2025.38 i 0.2025.39.
0.2025.33 · build 4 — Testwell CTC++, čita se po stupcu jer tekst nije razdvojen razmacima
2024-12-19
Dodano
- Ispisi profila izvršenja Testwell CTC++.
ctcpost pretvara MON.sym i MON.dat u tekstualni ispis fiksne širine — alat koji stoji nasuprot Bullseyeu u europskim ugrađenim i sigurnosnim procjenama, i onaj koji mjeri višeuvjetnu pokrivenost. Čita se po poziciji stupca umjesto razdvajanjem po razmacima, jer opis sam može početi znamenkom. - Višeuvjetnost nije MC/DC i ne prijavljuje se kao MC/DC. CTC++ broji kombinacije uvjeta; MC/DC pita je li pokazano da svaki uvjet neovisno utječe na ishod. Stavljanje tih brojeva iza MC/DC vrata dalo bi revizoru broj pod nazivom koji ne znači to, pa su ovdje pokrivenost grana, što i jesu.
0.2025.32 · build 4 — VectorCAST XML, i MC/DC koji se tiho odbacivao
2024-12-08
Dodano
- VectorCAST XML. VectorCAST piše izvješće Cobertura sve do doctype-a, a zatim dodaje atribute za ono što obična Cobertura ne može reći. To je značilo da su se te datoteke ovdje već učitavale i djelovale potpuno — uz
mcdcpair-coverage koji se tiho odbacivao pri ulasku, upravo publici koja je kupila alat baš zato da ga proizvede. Ti brojevi parova sada opstaju. Hrane vrata MC/DC, postotak i složenu ocjenu. - Pokrivenost poziva funkcija namjerno se ne aproksimira. Uklapanje toga u pokrivenost grana napuhalo bi broj koji završi u reviziji; čeka da model ima naziv za to, što se događa u 0.2025.38.
Promijenjeno
- Čitač Coberture sada nosi dijalekt:
<coverage line-rate=…> je obitelj, ne jedan format, a koji se dijalekt čita putuje s raščlambom umjesto da se pogađa po elementu.
0.2025.31 — Ada, Swift i pokrivenost koja se sama ponovno učitava
2024-11-07
Dodano
- GNATcoverage XML — napokon Ada. Timovi avionike DO-178C i željeznički timovi EN 50128 upravo su publika za koju su nastali sigurnosno ponderirani rezultat i podrška za MC/DC u ovom proizvodu, a dosad ovdje nisu mogli učitati ništa, osim ako im
gnatcov nije bio dovoljno nov da emitira i Coberturu, koja odbacuje sve ispod retka. gnatcov coverage --annotate=xml zapisuje direktorij, a ne datoteku: učitajte *.xml datoteke po izvoru — otvaranje index.xml reći će vam gdje je pokrivenost zapravo, umjesto da zakaže nejasno. Djelomično pokriven redak ostaje pokriven redak s nepokrivenom odlukom: manjak se pojavljuje u pokrivenosti grana i MC/DC, gdje i pripada. Područja izuzeća postaju isključeni retci, neodređena obveza broji se kao nepokrivena, a ne kao pokrivena, a uz --level=stmt+mcdc MC/DC se broji po uvjetu i pokreće prag i složeni rezultat.
- BullseyeCoverage i Visual Studio
.coveragexml. Bullseye je komercijalni C/C++ alat koji ugradbeni i sigurnosno kritični timovi doista posjeduju; pokrenite njegov covxml i učitajte rezultat. Njegova je glavna mjera pokrivenost uvjeta/odluka, a ne redaka, i te dvije ovdje ostaju odvojene — usto, sonda s jednim ishodom ocjenjuje se iz jedan, a ne iz dva, pa se potpuno testirani switch ne prikazuje kao napola pokriven. .coveragexml iz Visual Studija zaokružuje .NET za timove na MSTest-u i vstest-u umjesto Coverleta: binarni .coverage prvo pretvorite naredbom dotnet-coverage convert. Djelomično pokriveni retci prežive put u oba slučaja.
- SonarQube generička pokrivenost — i izravan odgovor o Xcodeu. Četiri atributa na dva elementa, a važno je jer gotovo svaki alat koji ne može emitirati nijedan od ostalih formata može emitirati ovaj: projekt čiji alat za pokrivenost ovo proširenje nikad nije čulo sada ima put unutra. To je i ono što zapisuje
xcresultparser, i tako Swift i Objective-C projekti dolaze ovamo: sam .xcresult nema parser, a dokumentacija sada kaže zašto umjesto da nagađate — xccov javlja postotke, a ne podatke po retku, a arhiva s podacima po retku čita se samo datoteku po datoteku, u dokumentu koji nikad ne imenuje datoteku koju opisuje.
- Gzipane datoteke traga učitavaju se takve kakve jesu.
gcov --json-format po zadanome zapisuje .gcov.json.gz, pa je format koji je dokumentacija oglašavala bio onaj koji većina ljudi zapravo nije mogla učitati. Prepoznavanje ide po magičnim bajtovima same datoteke, a ne po imenu, pa komprimirano izvješće koje je izgubilo svoj .gz i dalje radi — i svaki podržani format sada smije stići gzipan, ne samo gcovljev.
- Swift i Objective-C, iz Xcodeova vlastitog izvješća.
xcrun xccov view --report --json jedini je dokument pokrivenosti koji iOS ili macOS build stvara bez dodatnih alata. Dobivate postotke po datoteci, brojače izvršavanja po funkciji i CodeLens. Ne sadrži podatke po retku, a Studio ih ne izmišlja, pa margine kod ovog formata ostaju prazne — izmišljena oznaka ne razlikuje se od izmjerene. Za pokrivenost Swifta redak po redak upotrijebite llvm-cov export -format=lcov ili slather; oboje je već radilo.
- Coveralls JSON — pišu ga reporteri za Elixir, Ruby, Python, Rust, Go i JavaScript. Po retku je, pa margine rade.
- Aktivni dani, blokade pragova i licenca kojoj sažetak pripada — tri dodatka mjesečnom sažetku korištenja, za instalacije koje su uključile telemetriju.
Uklonjeno
- Ime računala više se ne šalje.
hostname bio je u telemetrijskoj osnovi od početka — izvan svake provjere, slao ga je svatko s uključenom telemetrijom. Ime računala vrlo je često nečije ime, broj radnog mjesta ili projekt klijenta, a nije odgovaralo ni na jedno pitanje o korištenju na koje operacijski sustav ne odgovara bolje. Instalacija se sada prepoznaje samo po svojem nasumičnom install id-u. Time ništa što imenuje vas ili vaše računalo ne napušta to računalo: ni ime računala, ni korisničko ime sustava, ni početni direktorij, ni mrežna sučelja, ni vaše putanje datoteka, ni naziv mape vašeg projekta, ni oznaka prijavljenog računa. Ostaju operacijski sustav, njegova verzija i arhitektura — kakvo računalo, a ne koje.
- Telemetrija se sada briše najkasnije unutar 90 dana, dok je pravilnik prije govorio samo da se “čuva dok je korisna”, što uopće nije rok.
Promijenjeno
- Plaćena licenca sada sama ponovno učitava pokrivenost. Praćenje datoteke praćenja oduvijek je značilo pitanje „otkrivena nova pokrivenost, učitati?“ nakon svakog builda, na svakoj razini — pitanje s jednim razumnim odgovorom, postavljeno više puta na sat. Taj je upit sada ponašanje besplatne Community razine; plaćena licenca jednostavno učita. Community zadržava praćenje, otkrivanje i upit koji je oduvijek imao.
- Datoteka koja se više ne podudara imenuje se, uz provjeru koja je to dokazala, uz plaćenu licencu. Otkrivanje nije ograničeno i neće biti: reći nekome da njegova pokrivenost više ne opisuje njegovu datoteku nije nešto što mu se prodaje. Community i dalje dobiva nalaz, a redak i dalje blijedi. Plaćena licenca dodaje pokazatelj — oznaku, značku u Exploreru te redak, funkciju ili kontrolni zbroj iza toga.
- Telemetrija šalje manje i govori kome pripada. Mjesečni sažetak više ne sadrži putanje datoteka, naziv mape vašeg projekta ni oznaku računa. Zamjena značajki za telemetriju sada traži e-mail adresu, kako bi onaj tko je na nju pristao mogao saznati što njegova instalacija šalje i tražiti brisanje.
- Ispravljena su tri opisa postavki.
watch.enabled, staleWarning.enabled i telemetry.enabled razišli su se s onim što kod radi — telemetry.enabled najviše: opisivao je slanje znatno više podataka nego što se šalje.
Popravljeno
- Odabir datoteke više ne skriva formate koje čita. Pick Coverage File filtrirala je na
info, json i xml, pa su Goov coverage.out i gcovljev .gcov.json.gz — oba formata koja ovo proširenje čita — bili zasivljeni upravo u dijalogu koji traži da odaberete jedan.
- Obična Community instalacija više ne šalje stranicu svojeg izvornog koda. Provjera koja je štitila uzorak izvornog koda tretirala je svaku Community instalaciju kao da je prihvatila telemetrijsku zamjenu, a ne samo one koje jesu.
- Jedno upozorenje po učitavanju umjesto dva — datoteka koja više ne odgovara svojoj pokrivenosti gotovo je uvijek i uređivana nakon izvođenja, a svaka se stvar prijavljivala zasebno.
- Deinstalacija više ne prijavljuje korisničko ime operacijskog sustava ni početni direktorij nekoga čija to licenca zabranjuje.
0.2025.30 · build 3 — Ono što vaša izgradnja ionako već piše
2024-10-18
Dodano
- Go profili pokrivenosti.
go test -coverprofile jedini je izlaz pokrivenosti koji proizvodi standardni Go alatni lanac — nema lcov-a na koji bi se moglo osloniti kao kod Rusta, Darta i Elixira — pa Go projekt nije imao ništa što bi ovo proširenje moglo pročitati. Profil bilježi blokove, a ne retke, i svaki redak koji blok obuhvaća preuzima njegov broj izvršavanja, uključujući zatvarajuću vitičastu zagradu, točno onako kako ih ističe go tool cover -html. coverage.out pridružuje se zadanim nazivima pretrage, pa Go projekt bez ikakve konfiguracije pronalazi svoj profil kao što C projekt pronalazi lcov.info.
- Clover XML i OpenCover XML. Clover je ono što PHP projekti doista imaju:
php-code-coverage može ispisati Cobertura, ali Clover mu je zadani i njega konfigurira gotovo svaki phpunit.xml, pa je pokrivenost PHP-a ovdje bila nečitljiva dok je Cobertura parser čekao izlaz koji gotovo nitko ne stvara. Istanbulov clover izvjestitelj piše isti dokument, pa je i tako konfiguriran Jest projekt pokriven. OpenCover je .NET pandan: C# i VB.NET već su stizali kao Cobertura, koja odluku sabija u niz condition-coverage="50% (1/2)", pa je podatak o tome koja se grana izvršila nestajao prije nego što bi ga parser vidio. OpenCover čuva broj posjeta po grani — razlika između „polovica ovog grananja je pokrivena“ i saznanja koja polovica.
- JSON iz coverage.py te iz gcov/gcovr. Cobertura i lcov izvozi iz coverage.py moraju redak s
# pragma: no cover nazvati ili pokrivenim ili nedostajućim jer nemaju riječ za „namjerno isključeno“ — a ovo proširenje je ima, istu oznaku koju postavljaju njegovi LCOV_EXCL markeri. Pragme Python projekta ovdje sada znače isto što znače i u vlastitom izvješću coverage.py. Pokrivenost GCC-a pak stizala je tek nakon prolaska kroz lcov ili gcovr -x: drugi alat da se pretvore podaci koje je GCC već proizveo. gcov --json-format --stdout i gcovr --json daju gotovo istovjetne dokumente, a jedan parser sada čita oba.
Popravljeno
- Komentari se čitaju u jeziku kojim je datoteka napisana. Skener redaka bez koda napisan je za C i primjenjivao se na svaku datoteku, što je bilo ispravno dok je svaki format koji je ovo proširenje čitalo opisivao jezik iz obitelji C. Više nije: C skener koji naiđe na
# don't vidi kako apostrof otvara niz, nikad ga ne vidi zatvorenog i broji redak komentara kao kod — broj koji je tiho pomalo pogrešan, a ništa to ne kaže. Sada je # za Python, Ruby, shell, Perl, R, Elixir i Juliju; sva tri oblika za PHP, koji prihvaća sva tri; i // s /* */ za sve ostalo, što ostaje zadano za nepoznatu ekstenziju — #define jest kod, a isključiti ga bilo bi pogrešno u drugom smjeru.
0.2025.29 · build 4 — Svaka postavka, objašnjena
2024-10-15
Dodano
- Svaka postavka
fuciniCoverage.* sada ima svoje mjesto na toj ploči, ne samo trinaest postavki usklađenosti. Svih pedeset i pet grupirano je u iste odjeljke i istim redoslijedom kao objavljeni priručnik postavki, pa se stranica s koje konfigurirate i stranica koju čitate slažu o tome gdje postavka pripada. Okvir za pretraživanje filtrira po nazivu, ključu ili opisu; popis skokova premješta vas među odjeljcima. Obrazac se tijekom rada izvodi iz vlastitog isporučenog manifesta proširenja — tipovi, zadane vrijednosti, granice, nabrajanja i svaka riječ teksta — pa ništa o postavci nije zapisano dvaput i ploča ne može odstupiti od proširenja koje uređuje.
- Opisi slijede jezik koji ste odabrali. VS Code razrješava lokalizaciju manifesta prema jeziku sučelja uređivača pri učitavanju proširenja i ne nudi način da se to nadjača po proširenju — pa je postavljanje
fuciniCoverage.language na njemački u engleskom uređivaču prevodilo sve osim postavki. Budući da ploča te datoteke čita i razrješava sama, ona je jedino mjesto koje taj odabir može poštovati.
- Kontrole koje JSON shema ne može zatražiti. Ništa u shemi postavki ne označava niz kao putanju, pa izvorno sučelje za nju ne može ponuditi birač; tri postavke koje sadrže direktorij sada imaju gumb Pregledaj….
coverageFile.paths i pathRemap dobivaju prave uređivače popisa umjesto sirovog JSON okvira, a svaka boja colorScale uzorak pokraj svoje heksadecimalne vrijednosti.
Promijenjeno
- Spremanje zapisuje ono što ste promijenili i ništa više. Uz trinaest postavki jedva je bilo važno što je Spremi zapisivalo svih trinaest; uz pedeset i pet to bi značilo da jedna izmjena utisne cijeli imenski prostor u
settings.json koji je imao dva retka. Zapisuju se samo postavke čija se vrijednost doista promijenila, a vrijednost jednaka zadanoj briše nadjačavanje umjesto da ponavlja ono što proširenje ionako isporučuje.
- Vaš licencni ključ uvijek ide u vaše korisničke postavke, i redak to kaže.
license.key deklariran je s opsegom aplikacije, što znači da ga VS Code čita isključivo odande — zapisivanje u radni prostor je spremanje koje izgleda uspješno, a ne mijenja ništa. Vrati sada briše svih pedeset i pet ključeva u odabranom opsegu umjesto trinaest, pa prvo pita. A izmjena izvan ploče više vas ne stoji mjesta: stranica uspoređuje prije ponovnog iscrtavanja, pa Spremi više ne vraća pedeset i pet redaka na vrh.
0.2025.28 · build 3 — Trinaest redaka, jedna odluka
2024-10-12
Dodano
- Način usklađenosti, sedam kriterija praga i šest težina složene ocjene sada imaju jedan uređivač. U sučelju postavki to je trinaest nepovezanih redaka, a u praksi jedna jedina odluka: prag ne čini ništa dok ga važeći način ne uzme u obzir, a težina ne čini ništa dok ne odlučuje ponderirani kriterij. Fucini Coverage: Configure Coverage Compliance & Thresholds..., na gumbu sa zupčanikom u naslovnoj traci prikaza Coverage, objedinjuje to troje, objašnjava svaki način ondje gdje se način i bira, i imenuje načine na koje se kriterij može podesiti tako da ne provjerava ništa — strogi način bez ijednog postavljenog praga po metrici, ponderirani način s pragom
0, težine koje su sve 0 — kao upozorenja, dok ih gledate.
- Prikazuje presudu unaprijed i piše kroz VS Code. COMPLIANT / NON-COMPLIANT koji bi nespremljeni obrazac dao za učitano izvođenje računa vlastiti mehanizam usklađenosti proširenja, a ne druga kopija pravila: pregled koji se može ne slagati s kriterijem gori je od nikakvog pregleda. Promjene idu kroz uobičajeni konfiguracijski API u
settings.json — korisnički ili radnog prostora, po vašem izboru — pa VS Code oblikuje datoteku i zadržava njezine komentare; izmjena napravljena ručno ili u drugom prozoru vraća se u otvoreni obrazac, bilo da je izvođenje učitano ili ne. Licenca nije potrebna: Community dobiva isti uređivač kao i Pro.
Ispravljeno
- Gumb obavijesti o ažuriranju glasio je
Download && Install. Udvostručeni ampersand je izlazni znak za mnemonike i ispravan je u naslovima u package.json i u modalnim dijalozima — ali gumbi radnji u obavijesti uzimaju svoju oznaku kao običan tekst, pa su oba znaka ispisana točno onako kako su i napisana, u svih 17 jezika, svakome kome je ponuđeno ažuriranje.
0.2025.27 · build 7 — Razmjena na koju sami pristajete
2024-09-30
Promijenjeno
- Telemetrija je prema zadanome isključena. Isporučivala se uključena, uz obrazloženje da su evaluacijskom razdoblju ti podaci potrebni. To je obrazloženje prestalo vrijediti čim je razina Community učinila uključivanje telemetrije onime što besplatno otključava sve Pro značajke: razmjena nešto znači samo ako je osoba sama napravi, a razmjena na koju nitko nije pristao nije razmjena. Ništa se ne šalje dok je ne uključite, a Community ionako nastavlja raditi sa svojim standardnim skupom značajki.
- Postavka telemetrije govori čemu služi, a za ostalo upućuje dalje. Njezin je opis prije nabrajao svako polje koje ping nosi, što je značilo dvije kopije tog popisa — jednu u postavci, jednu u pravilima privatnosti — koje su zauvijek morale ostati istovjetne, a nisu bile. Sada govori što dobivate uključivanjem i upućuje na pravila privatnosti za popis polja, pa postoji jedan popis koji treba držati istinitim umjesto dva.
- Instaliranje ovog izdanja jednokratno ponovno otvara vaše razdoblje evaluacije. Svatko kome je probno razdoblje već isteklo dobiva novih 14 dana, jer ovo izdanje mijenja uvjete pod kojima se evaluiralo: probno razdoblje provedeno s telemetrijom uključenom prema zadanome nije bilo probno razdoblje proizvoda koji se sada nudi. Namjerno je vezano uz jednokratni token, a ne uz verziju — poništavanje pri svakom izdanju značilo bi da probno razdoblje nikada ne završava onima koji prate ažuriranja, a to nije probno razdoblje nego licenca bez cijene s dodatnim koracima. Token se troši pri prvoj aktivaciji, nakon čega vrijede uobičajena pravila. Plaćena licenca ostaje netaknuta jer se provjera ključa vraća prije nego što se probno razdoblje uopće uzme u obzir, a Community nije zahvaćen jer to izdanje nema probno razdoblje koje bi se moglo ponovno otvoriti.
- Licencni ključ više ne stoji upitnika. Poruke pri aktivaciji, postavka licencnog ključa i dijalog po isteku probnog razdoblja svi su ključ predstavljali kao nešto što se izdaje u zamjenu za odgovaranje na pitanja. Nije tako: ključ se izdaje automatski na zahtjev, a upitnik s povratnim informacijama dobrovoljan je i posve odvojen.
Ispravljeno
- Tri su mjesta i dalje obećavala probno razdoblje „do 2026-12-31”. Takav datum nikada nije postojao u proizvodu — probno razdoblje traje 14 dana, računajući po instalaciji od prve upotrebe. Dva su ranija izdanja uhvatila tu tvrdnju u opisima postavki i u README-u; preživjela je u evaluacijskom okviru na ovoj stranici, u Korisničkom vodiču i u README-u licencnog alata. Korisnički je vodič bio najgori od trojice: navodio je da razdoblje vrijedi „za svaku instalaciju, širom svijeta, odjednom (ne kao odbrojavanje po instalaciji)”, što je upravo obrnuto, i tvrdio da se prikaz pokrivenosti pauzira kad probno razdoblje istekne, dok proširenje zapravo prelazi na besplatnu razinu Community.
- E-poruke s obavijestima telemetrije slale su se s pogrešne domene. Zaglavlje
From: bilo je poštanski sandučić na fucini.consulting, dok je poslužitelj koji ih šalje fucini.software — upravo usklađenost na koju upozorava vlastiti komentar te postavke, i pouzdan način da poruke završe u neželjenoj pošti ili budu izravno odbijene.
0.2025.26 · build 2 — Posivljeno, nije nestalo
2024-08-27
Promijenjeno
- Datoteka koju izvješće imenuje, a koje nema na disku, prikazuje se ondje gdje pripada — posivljena i s objašnjenjem. Verzija 0.2025.25 prestala je izmišljati lokacije za takve datoteke, što je bilo ispravno, ali im je ostavila relativnu putanju koja uopće nije lokacija — pa je stablo i dalje od njezina prvog segmenta radilo projekt, a tri obrisana izvora podmodula sjedila su u sablasnom
app pokraj podmodula iz kojeg su zapravo došla. Nesklad je bio vidljiv, u tome je i bila poanta, ali je bio vidljiv na krivom mjestu i nije govorio što nije u redu.
- Sada se pojavljuje u projektu iz kojeg je mjerena, u mapi u koju je izvješće smješta — nacrtana u srednjesivoj boji teme i kurzivom umjesto u uobičajenoj boji teksta. Prelaskom mišem prikazuje se putanja koju bi imala i objašnjenje da ondje nema ničega — najvjerojatnije preimenovana ili obrisana nakon izrade izvješća — te da se njezini brojevi i dalje broje. Ništa se ne izostavlja i nijedan se zbroj ne pomiče: redak je vlastiti iskaz izvješća, a sivilo je ono što ga sprječava da izgleda kao redak koji se otvara.
- Nagađanje ostaje unutar prikaza. Zabilježena putanja datoteke i dalje je točno ono što je izvješće reklo, jer je sve ostalo ključano po njoj — obogaćivanje vanjskog izvješća uspoređuje se s njom, telemetrija je relativizira, anotirani prikaz je otvara — a dati im pretpostavljenu lokaciju značilo bi zamijeniti poznato izmišljenim. Samo stablo spaja to dvoje, i samo za putanju koja ne imenuje vlastitu lokaciju: apsolutna putanja koje jednostavno nema zadržava ono što je izvješće reklo i posivi ondje gdje jest.
0.2025.25 · build 4 — Gdje je mjereno
2024-08-07
Ispravljeno
- Pokrivenost podmodula završava ondje gdje podmodul doista jest, i njegovi se redci otvaraju. Git podmodul gradi vlastito izvješće uz vlastito stablo, a gcovr u njemu piše
<source>.</source> — „mapa u kojoj je ova datoteka” — s imenima poput app/Application.cpp ispod. Ništa nije usidrilo tu . nigdje: putanje su se razrješavale jednom, nakon spajanja, kad izvođenje više nije znalo iz kojeg ulaza koja datoteka dolazi, pa je jedina preostala baza bila korijen radnog prostora. Pokušaj s <workspace>/app/Application.cpp nije našao ništa, svaka je putanja ostala relativna, a prikaz pokrivenosti crtao ih je kao projekt imena app — po prvom segmentu putanje koja nikad nije bila lokacija — čiji je svaki redak kopirao i otvarao ondje gdje nije bilo datoteke.
- Putanje se sada razrješavaju po datoteci traga, prije spajanja. Relativni
sourceRoot usidren je na mapu u kojoj je njegova datoteka traga, pa . uz coverage.xml podmodula znači taj podmodul. Ako to ne nađe izvore, pretraga ide prema gore od datoteke traga — uobičajen CMake raspored piše pokrivenost nekoliko razina duboko u build/, a koji od dva oblika projekt koristi nigdje ne piše u izvješću, pa odgovara datotečni sustav umjesto konfiguracije. Uspon staje na korijenu radnog prostora: dalje bi goli src/main.c mogao završiti u susjednom checkoutu istog rasporeda — pogrešan odgovor koji izgleda ispravno. Putanja koja je već apsolutna i postoji ostaje netaknuta, pa se obična lcov izvođenja ne mijenjaju.
- Podmodul ostaje vlastiti projekt u prikazu pokrivenosti. Datoteke koje se sada razrješavaju unutar radnog prostora inače bi upale u njegovo stablo — mape podmodula isprepletene s roditeljskima, a njegovi brojevi pribrojeni roditeljskom zbroju kao da je jedna baza koda mjerena dvaput. Svaka datoteka bilježi korijen iz kojeg je mjerena, a prikaz grupira po njemu, pa podmodul zadržava vlastiti naslov i vlastite zbrojeve iako se nalazi u otvorenoj mapi. Izvođenje s ionako apsolutnim putanjama nema takav korijen i grupira se točno kao prije.
- Datoteka koju izvješće imenuje, a koje više nema, i dalje se prijavljuje kao nedostajuća. Ne dobiva uvjerljivu putanju na kojoj nije: izvješće koje imenuje u međuvremenu obrisane datoteke zastarjelo je izvješće, a crtanje na izmišljenim mjestima to bi sakrilo. Svaka je imenovana u izlaznom kanalu pod
FUCINI_REMAP_001, s putanjom koju bi imala.
0.2025.24 · build 3 — Zašto je vaše mjesto nestalo
2024-07-27
Promijenjeno
- Mjesto koje nestane sada kaže zašto. Svako opozivanje prikazivalo je isti redak — vaše mjesto u ovom planu više nije aktivno — što se čita kao prijekor upućen pogrešnoj osobi. Timska pretplata smanjena ispod broja mjesta u upotrebi sada oslobađa višak nakon razdoblja počeka, a onaj tko izgubi mjesto nije učinio ništa osim što ga najdulje nije koristio. Ondje gdje poslužitelj licenciranja ima nešto korisno reći, proširenje to i kaže: mjesto oslobođeno zbog smanjene pretplate objašnjava upravo to i upućuje na osobu koja pretplatom upravlja, uz Zatraži novi ključ koji je i dalje ponuđen — jer put natrag je stvaran: u skupini ima mjesta čim ga ta osoba oslobodi.
- Završena pretplata ne nudi gumb. Iz istekle pretplate ne može se izdati novi ključ, pa je jedina radnja na toj obavijesti mogla samo propasti — što se čita kao pokvareno proširenje, a ne kao završena pretplata. Sada kaže što se dogodilo i tu staje. Svaki razlog koji ova verzija ne prepoznaje zadržava opću formulaciju: poslužitelj licenciranja objavljuje se neprekidno, a instalirano proširenje ne, pa je susret s nepoznatim razlogom uobičajen slučaj, a ne rubni — nikad ne prikazuje goli identifikator i nikad ne zašuti. Obje nove poruke prevedene su na svih sedamnaest jezika.
0.2025.23 · build 5 — Izvan proširenja
2024-07-17
Dodano
- Izvođenje sada može van, u šest dodatnih formata. Dosad su postojala samo dva izlaza: Fucini JSON, koji ne čita ništa osim samog proširenja, i HTML izvješće, koje strojno ne čita ništa. Export Coverage Report... otvara izbor formata i zapisuje aktivno izvođenje kao CSV po datoteci (pokriveno/ukupno/postotak za retke, grane, funkcije, MC/DC, regije i instancijacije, najlošije prvo, s retkom
TOTAL), kao CSV po funkciji (broj izvođenja, je li se izvela, nepokrivene grane u njoj, MC/DC parovi), kao Markdown sažetak za lijepljenje u pull request, kao LCOV datoteku traga, Cobertura XML, SARIF, ili kao samostalan SVG bedž za README. Nalazi se u paleti naredbi, u naslovnoj traci prikaza Covered Files pokraj Generate Full HTML Report, i u brzom izborniku statusne trake čim je quickActions.exportReport uključen.
- Sada je pretvarač, ne samo preglednik. Proširenje već čita lcov, llvm-cov JSON, Cobertura, JaCoCo, Istanbul/nyc i SimpleCov; s LCOV i Cobertura zapisivačima može i u suprotnom smjeru. Učitajte JaCoCo izvješće, ili više izvješća spojenih u jedno izvođenje, i ispišite jedinu datoteku traga koju prihvaćaju genhtml, Codecov, Coveralls i SonarQube — ili XML koji Jenkins, GitLab i Azure DevOps učitavaju izvorno. Oboje prolazi natrag kroz vlastite parsere proširenja, a rasponi redaka šire se redak po redak kako bi zapisani
LF/LH odgovarali postotku na zaslonu umjesto da ga približno pogađaju.
- Svaki zapisivač kaže što odbacuje. Svi osim CSV-ova gube podatke, i to tiho: MC/DC, regije koda i C++ instancijacije nemaju prikaz u LCOV-u, Coberturi ni SARIF-u, a Cobertura bilježi koliko je uvjeta retka pokriveno, ne koja grana. Fucini JSON i dva CSV-a ostaju formati koji nose sve izmjereno. U CSV-ovima metrika koju izvođenje nema ostavlja svoje ćelije prazne umjesto na nuli — prazna ćelija kaže „ovaj alat nije prijavio podatke o granama”, a
0 bi rekla „nijedna grana nije pogođena”, i proračunska tablica ih poslije više ne razlikuje. Sve što bi proračunska tablica inače izvršila kao formulu — polje koje počinje s =, +, - ili @, dakle svaka npm putanja s opsegom — navodi se i onesposobljava prije zapisivanja.
- SARIF anotira diff; bedž ne treba mrežu. Nepokriveni rasponi prijavljuju se na razini
note, ne warning: nepokriveni kod govori o testnom paketu, a skeniranje koda upozorenje tretira kao nešto što bi trebalo blokirati — vrata koja blokiraju i dalje su Check Coverage Thresholds. Bedž se crta ovdje umjesto da se dohvaća sa shields.io, pa radi i u izoliranom ili lokalnom repozitoriju, a boju uzima iz iste colorScale kao rubovi i statusna traka. U besplatnom Community izdanju izbor se otvara i oba CSV-a rade, ograničeni na 20 izvoza dnevno kao Export Fucini JSON; formati razmjene plaćeni su, po istoj crti koju je ovo izdanje uvijek povlačilo: čitati vlastite brojke besplatno je, hraniti CI cjevovod nije.
0.2025.22 · build 3 — Nema što mjeriti
2024-06-24
Ispravljeno
- Datoteka u kojoj nema što instrumentirati više se ne prikazuje kao 100% pokrivena. Zaglavlje sa samim deklaracijama — prototipovi, makro, zaštita od višestrukog uključivanja — nema tijela funkcija, pa prevoditelj za njega ne emitira nikakvo mapiranje pokrivenosti, a sve što dijeli nulu nulom odgovara 100%. Stajalo je zeleno u stablu, uz kod koji je doista testiran. Oba čitača sada uzimaju vlastite zbrojeve alata kao iskaz datoteke o sebi —
LF/FNF/BRF u lcovu, blok summary u llvm-cov JSON-u — a datoteka čiji su svi zbrojevi nula ostaje izvan izvođenja umjesto da bude ocijenjena. Zapisi po recima ispod tih zbrojeva namjerno se zanemaruju: proširenje makroa pripisuje se retku koji ga definira, dok brojanje pripada retku koji ga koristi, u drugoj datoteci, i upravo je taj posuđeni redak bio jedini razlog zašto je takvo zaglavlje izgledalo izmjereno. I ukupni zbrojevi ga gube, pa je glavna brojka nešto niža i mnogo istinitija. Svaka izostavljena putanja imenovana je u izlaznom kanalu, a izvješće u kojem su sve datoteke samo deklaracije zadržava ih sve.
Promijenjeno
- Odabir datoteke pokrivenosti dodaje se onome što je već učitano umjesto da ga zamijeni. Build koji piše jedno izvješće po modulu nema jednu datoteku za fiksiranje, a odabir izvješća drugog modula tiho je uklonio prvo. Dijalog sada prima više datoteka odjednom, svaki odabir dodaje se skupu, a sve odabrano spaja se u jedno izvođenje — nacrtano u ploči pod vlastitim imenom svakog projekta. Nadzor prati sve njih, a ponovno izgrađeno izvješće više ne miče ostala s ekrana. Show Loaded Coverage Files završava stavkom Ukloni odabrane datoteke, koja vraća na uobičajeno pronalaženje.
- Podrška ima adresu na vlastitoj domeni proizvoda:
support@fucini.software. Ondje gdje se aktivacija ne može dovršiti sama, ploča licence i poruka s kodom zahtjeva davale su adresu fucini.consulting — drugu domenu od svake druge poveznice u proširenju, koja se čita kao druga tvrtka. license@fucini.software ostaje isti: on šalje ključeve, nije sandučić za pisanje.
0.2025.21 — Čiji je ovo src
2024-06-21
Dodano
- Svako stablo u prikazu Coverage sada govori kojem projektu pripada. Verzija 0.2025.19 dala je spojenom pokretanju po jedan imenovani blok za svaki projekt, ali je obično pokretanje i dalje crtalo golo stablo — pa se radni prostor skraćen na vlastitu mapu otvarao na
src, a ništa iznad nije govorilo koji je to src. Svako stablo sada nosi svoj korijen: mape koje vode do projekta u prigušenoj boji, a vlastita mapa projekta iza njih u punoj. Stablo skraćeno na mapu radnog prostora i dalje kaže na što je skraćeno, a dvije baze koda spojene u jedno pokretanje nikada se ne čitaju kao jedno stablo. To je naslov, a ne redak — ondje se nema što proširiti, a mape ispod sklapaju se točno kao i prije. U uskoj ploči prvo se skraćuju vodeći direktoriji, pa mapa koja zapravo imenuje projekt nestaje posljednja, a prelazak mišem pokazuje cijeli put.
0.2025.20 · build 7 — Izbornik kakav ste očekivali
2024-06-08
Dodano
- Retci prikaza Coverage imaju kontekstni izbornik samog Explorera. Desni klik na datoteku ili mapu prije je otvarao Izreži/Kopiraj/Zalijepi iz web-prikaza — tri stavke bez ičega na čemu bi djelovale. Sada se otvara pravi izbornik VS Codea: Otvori, Open to the Side, Otvori pomoću…, Reveal in Explorer View, Reveal in File Explorer, Open in Integrated Terminal, Pronađi u mapi… za mapu te Copy Path / Copy Relative Path — uz njih na Windowsima i inačice s kosim crtama, gdje se dva oblika razlikuju. Gumb
⋯ i njegov izbornik nisu se promijenili i posljednja su stavka novog izbornika.
Promijenjeno
- Mjera za koju vaša datoteka pokrivenosti nema podataka više se ne ocjenjuje. Prag za MC/DC bez MC/DC-a u buildu brojio se kao neuspjeh — pa je datoteka sa 100 % po svakoj stvarno izmjerenoj mjeri stajala ispod kartice na kojoj piše „ispunjeno 3 od 5”, naspram letvice koju ništa u toj datoteci nikada ne bi moglo preskočiti. Mjere bez podataka sada se preskaču svugdje gdje nastaje ocjena: u statusnoj traci po datoteci, na kartici cijelog izvođenja, u natpisu iznad označenog izvornog koda i u HTML izvještaju. Check Coverage Thresholds i dalje izričito imenuje mjeru koja nedostaje — ondje joj je i mjesto.
- Datoteke u kojima nema ničeg mjerljivog izostavljene su iz prikaza Coverage. Zaglavlje s deklaracijama, datoteka sa samim ponovnim izvozima, modul samo s tipovima: nijedan test koji napišete neće promijeniti njihov broj, a otvaranje ne pokazuje nijednu mjeru. U 0.2025.19 imale su crticu; sada ih jednostavno nema na popisu, a s njima nestaju i mape koje ostanu prazne. Izvođenje u kojem ništa nije mjerljivo i dalje prikazuje sve.
Ispravljeno
- Slovo pogona i dalje je moglo stajati na vrhu stabla. Za pokrivenost čije putanje nisu ispod otvorene radne mape — spojena datoteka iz drugog projekta ili prozor bez otvorene mape — stablo je počinjalo na
W:, a na Linuxu i macOS-u retkom bez ikakva imena: jedan redak s točno jednim djetetom, koji se nema smisla proširiti. Korijen datotečnog sustava sada se više nikada ne crta, kakve god putanje bile, a svaki redak i dalje nosi svoju stvarnu apsolutnu putanju za izbornik i uređivač.
0.2025.19 · build 6 — Putanje, ne uvod
2024-05-16
Dodano
- Izbornik retka na svakoj datoteci i mapi u prikazu Coverage. Gumb na kraju retka kopira tu putanju u bilo kojem od četiri oblika koja mogu zatrebati uredniku, ljusci ili upitu — apsolutnu ili relativnu na radni prostor, s razdjelnicima sustava ili s kosim crtama — te nudi Reveal in File Explorer i Open in Integrated Terminal, pri čemu se za datoteku terminal otvara u njezinoj vlastitoj mapi. Stavke s kosim crtama navode se samo ondje gdje se razlikuju od izvornog oblika, pa je na Linuxu i macOS-u izbornik kraći za dvije stavke. Kopiranje putanje dosad je značilo pronaći istu datoteku po drugi put u Exploreru.
- Gumbi za sažimanje i proširivanje svega iznad stabla. Sažeti sve pa otvoriti jednu mapu koja vas zanima najbrži je put kroz veliko stablo, a dosad je stajao jedan klik po mapi. Ono što tako sažmete pamti se jednako kao mapa koju ste zatvorili rukom, pa ponovno učitavanje to neće poništiti.
- Spojeno izvođenje koje obuhvaća više projekata sada crta svaki projekt zasebno, pod njegovim vlastitim imenom. Spajanje datoteke traga iz druge baze kôda dosad je njezine mape vješalo na isto stablo kao i mape radnog prostora, pa se
src pojavljivao dvaput bez ikakvog objašnjenja, a direktoriji dvaju projekata miješali su se abecedno. Svaki projekt sada dobiva vlastiti imenovani blok, odvojen crtom, a prvi je onaj radnog prostora. Izvođenje koje obuhvaća samo jedan projekt nepromijenjeno je i nema naslova — ne bi se imalo od čega razlikovati.
Ispravljeno
- Datoteka bez ičega izvršnog prijavljivala se kao 0% pokrivena. Modul koji sadrži samo
export * reeksporte ili samo deklaracije tipova prevodi se u nešto što alat za pokrivenost ne može izmjeriti — pa datoteka traga za njega ne bilježi nijednu naredbu. Prikaz Coverage ocjenjivao je to s 0% i stavljao datoteku u crveno uz kôd koji doista nije testiran, iako za nju nema što napisati; Explorer je istoj datoteci u međuvremenu davao zelenih 100%, jer se prazan zbroj čita kao „sve od ničega pokriveno”. Nijedan od tih brojeva nije bio točan i nijedan se više ne prikazuje: redak u ploči dobiva crticu i iscrtkani obrub s opisom zašto, a oznaka u Exploreru izostaje. Mapa koja sadrži samo takve datoteke također ostaje bez ocjene. Datoteka koja ima 0% nečega što jest izmjereno i dalje pokazuje 0% — crtica znači „nema što mjeriti”, a ne „izmjereno i promašeno”. - Retci iz spojenog projekta pokazivali su na krivo mjesto. Njihove su se putanje gradile od korijena radnog prostora, a ne od vlastitog, pa je za datoteku izvan radnog prostora izbornik retka kopirao — a „Reveal in File Explorer” otvarao — putanju na kojoj datoteka nikad nije bila. Sada nose korijen iz kojeg doista potječu.
Promijenjeno
- Prikaz Coverage više ne crta korijen radnog prostora. Stablo je počinjalo od korijena datotečnog sustava i spuštalo se kroz svaku mapu iznad projekta — pogon, zatim direktorij s vašim projektima, zatim sam projekt — prije nego što bi došlo do prve mape koja je doista bila vaša. To je bilo nekoliko razina uvlake, u svakom retku, koje su ponavljale ono što je naslov prozora već rekao. Putanje sada počinju od mape radnog prostora. Puna apsolutna putanja i dalje je ono što izbornik retka kopira i što urednik otvara.
0.2025.18 · build 4 — Ostaje ondje gdje ste ga ostavili
2024-04-30
Ispravljeno
- Mape koje ste sklopili u prikazu Coverage ponovno su se otvarale pri svakom ponovnom učitavanju. Praćenje je uključeno prema zadanome, pa build koji ponovno generira pokrivenost iznova iscrtava ploču — a budući da se svaka mapa iscrtavala otvorena, sklapanje je trajalo samo do sljedećeg builda. Na velikom stablu to je značilo obavljati isti posao nekoliko puta na sat. Ploča sada pamti koje ste mape zatvorili i ostavlja ih zatvorenima. Direktorij koji se prvi put pojavi u kasnijem pokretanju i dalje se prikazuje otvoren, kao i svaki drugi: pamti se namjerni čin zatvaranja, a ne zadano stanje.
- Isključivanje telemetrije nije zaustavljalo signal o deinstalaciji. Taj signal šalje mala samostalna skripta koju VS Code pokreće pri deinstalaciji. Ona nema pristup API-ju VS Codea i ne može čitati vaše postavke, pa joj jedino što ikad kaže da ništa ne šalje jest nepostojanje datoteke koju proširenje zapisuje dok je telemetrija uključena — a ta se datoteka nikada nije uklanjala kad biste isključili telemetriju. Svatko tko ju je imao uključenu pa je kasnije isključio i dalje bi pri deinstalaciji poslao svoje korisničko ime OS-a, naziv računala i matični direktorij. Datoteka se sada briše čim se telemetrija isključi.
- Obnova Pro licence mogla je prijaviti uspjeh za ključ koji ste upravo zamijenili. Tiha obnova čitala je konfigurirani ključ dvaput: jednom da odluči treba li obnoviti, a zatim ponovno da odluči treba li išta javiti. Ako biste zalijepili novi ključ dok je obnova bila u tijeku, drugo čitanje vidjelo je drugi ključ, a poruka „vaša Pro pretplata je obnovljena” opisivala je onaj koji je već bio zamijenjen. Sada se ključ čita samo jednom.
Promijenjeno
- Svaki modul proširenja sada je pokriven vlastitim testovima. Za alat čiji je cijeli posao reći vam što vaši testovi zapravo dosežu, činilo se vrijednim to napraviti kako treba: 53 od 54 izvorne datoteke imaju 100% po naredbama, granama, funkcijama i recima, a preostala — sloj povezivanja s VS Codeom — 95% svojih funkcija. Pisanje testova otkrilo je gore opisane pogreške, a uz njih i dvadesetak zaštitnih provjera koje se nikad nisu mogle izvršiti: rezervne putanje iza provjera koje su ih već isključile, koje su izgledale kao sigurnosne mreže, a nisu hvatale ništa. Uklonjene su umjesto da budu prikrivene testom koji nije mogao pasti.
0.2025.17 — Upitano u trenutku koji zaslužuje odgovor
2024-04-27
Promijenjeno
- Neobavezna anketa sada čeka da doista upotrijebite proširenje i pita u boljem trenutku. Brojila je kalendarske dane od instalacije, čime je mjerila koliko je davno instalirano, a ne jeste li ga ikad vidjeli u radu — instalacija netaknuta mjesec dana dobila je zamolbu da ocijeni proizvod koji joj ništa nije pokazao. Sada su uz proteklo vrijeme potrebna i stvarna učitavanja pokrivenosti, a anketa se više ne pojavljuje dok se uređivač pokreće: čeka uspješno učitavanje. Nakon godine dana slijedi treći i posljednji poziv, jer su dva unutar istog tromjesečja trajno isključivala svakoga tko je tada bio zauzet.
- Nizozemski prijevod više nije formalan. Posvuda vam se obraćao s «u», što za razvojni alat zvuči kruto i nije odgovaralo ostatku glasa proizvoda. Svi nizozemski tekstovi sada koriste «je» — prepisani rečenicu po rečenicu, jer promjena povlači i glagolske oblike.
0.2025.16 — Kôd, a ne tvrtka
2024-04-23
Promijenjeno
- Obrazac za aktivaciju tražio je „company code“ od samostalnih programera. Kupite li Pro ili Pro Plus kao pojedinac, kôd dolazi iz vaše vlastite pretplate — iza njega nema tvrtke, a pitanje o njoj ostavlja dojam da ste na krivom obrascu. To se polje sada zove Subscription code za Pro i Pro Plus, a ostaje Company code za Business i Enterprise, gdje ga tim doista dijeli. Napomene ispod već su bile pisane po planu; općenita je ostala samo oznaka polja.
0.2025.15 · build 3 — Mjereno prema onome što ste zadali
2024-03-25
Ispravljeno
- Generirano HTML izvješće ocjenjivalo je vaš kod prema 100 %, bez obzira na pragove koje ste postavili. Stupac Status provjeravao je svaku metriku prema skrivenih 100, pa je projekt koji je postavio granice na 80 i ispunio ih vidio zelenu COMPLIANT traku točno iznad stupca crvenih križića — za isto izvođenje, na istoj stranici. Legenda metrika radila je isto. Oboje sada koriste vaše postavljene pragove, a ondje gdje nijedan ne vrijedi prikazuju prigušenu crticu umjesto izmišljene ocjene.
- Traka usklađenosti tvrdila je više nego što je provjerila. Uvijek je pisalo „svi postavljeni pragovi ispunjeni", pa i u zadanom načinu koji provjerava samo ponderirani rezultat — izvođenje je moglo tvrditi da su svi pragovi ispunjeni dok je jedan očito padao u tablici ispod. Svaki način sada navodi pravilo koje je stvarno primijenio.
- README je tvrdio da proširenje „radi besplatno do 2026-12-31". Takav datum u proizvodu ne postoji. Ranije izdanje ispravilo je tu tvrdnju u opisima postavki, ali je propustilo README — prvo što se čita na Marketplaceu. Sada piše što se doista događa: 14-dnevno probno razdoblje od prve upotrebe, zatim besplatna razina Community, bez datuma nakon kojeg išta prestaje raditi.
0.2025.14 — Razlikovati ih
2024-03-15
Promijenjeno
- Dva izdanja više ne izgledaju jednako na Marketplaceu. Pro i Community grade se iz jednog stabla izvornog koda, a dosad je to uključivalo i ikonu — pa su oba unosa bila ista slika s različitim natpisom, jedan uz drugi u istim rezultatima pretraživanja. Sada svako izdanje ima svoju: istu grafiku s obojenom trakom pri dnu, tirkiznom za Pro i škriljevcem za Community. Riječ ih razlikuje kad je ikona prikazana velika; u retku rezultata pretraživanja riječ je premala da bi se pročitala, pa to preuzima boja.
0.2025.13 — Dostupno odande gdje stojite
2024-02-26
Ispravljeno
- Otvaranje prikaza s bilješkama više vas ne sprječava da ga ponovno otvorite. Ploča s označenim izvornim kodom web-prikaz je, a ne uređivač teksta, pa dok je bila u fokusu proširenje nije vidjelo „trenutačnu datoteku" — i Open Annotated Source ondje bi odgovorio „najprije otvorite datoteku s učitanom pokrivenošću", i to nekome tko je upravo gledao prikaz datoteke koja pokrivenost očito ima. Sada se oslanja na datoteku iza ploče koju gledate. Isti je blok tiho preskakao i ponovnu provjeru radi koje drugo pokretanje uopće postoji: kad je konfigurirano llvm-cov HTML izvješće, upravo ponovno pokretanje prebacuje ploču na stranicu tog izvješća — pa ako je vaša izgradnja pokrivenosti završila nakon otvaranja ploče, do nje se s same ploče nije moglo doći.
0.2025.12 · build 2 — Reći ono što je istina
2024-02-15
Dodano
- Plaćena Pro pretplata sada se obnavlja sama. Svaki aktivacijski ključ traje točno onoliko koliko je plaćeno. Timski planovi preuzimaju obnovljeno razdoblje pri sljedećoj prijavi, ali individualni Pro se nikada ne javlja — radi potpuno offline — pa mu ništa nije donosilo obnovu, a ključ mjesečnog pretplatnika istekao bi otprilike svaki mjesec koliko god uredno plaćao. Proširenje sada tiho zatraži novi ključ, samo u danima oko vlastitog isteka i samo kada ima kôd koji dokazuje da ga je pretplata platila. Biti offline u tom razdoblju ne košta ništa: ključ radi do stvarnog isteka, a sljedeći pokušaj nakon toga vraća ga.
- Aktivacija iz e-pošte o kupnji je jedan klik. Poveznica proširenju izravno predaje vaš plan i kôd, umjesto otvaranja VS Codea, traženja naredbe i ručnog lijepljenja koda. Prije zauzimanja mjesta uvijek traži potvrdu. Ručni unos koda radi jednako kao prije — poveznica je prečac, nikada jedini put — i radi i u Community izdanju.
Ispravljeno
- Opis jedne postavke tvrdio je da je proširenje "besplatno do 2026-12-31". Takav datum nigdje ne postoji u proizvodu. Zapravo postoji 14-dnevno probno razdoblje od prve upotrebe, nakon čega se proširenje vraća na besplatnu razinu Community. Sada tako i piše, na svim jezicima.
- Postavke pragova više ne navode izdanje u kojem su im se promijenile zadane vrijednosti — broj verzije usred rečenice odgovara na pitanje koje nitko ne postavlja čitajući opis postavke.
- Nekoliko prevedenih opisa navodilo je naredbu koju nijedan prevedeni VS Code ne prikazuje. Spominjali su naredbu za aktivaciju njezinim engleskim nazivom, pa su svi koji ne rade na engleskom tražili u paleti naredbi tekst kojeg ondje nema.
0.2025.11 · build 3 — Brojimo ono što se broji
2023-12-26
Ispravljeno
- Projekt bez MC/DC odluka mogao je prikazati 0 % ukupne pokrivenosti. Neki alati prijavljuju MC/DC odjeljak i kada u njemu nema ničega za mjeriti, a to se čitalo kao „0 % pokriveno“ umjesto „nema što pokriti“. Budući da ukupna ocjena pada na nulu čim je bilo koja mjera nula, potpuno pokriven projekt mogao je prikazati 0 %. Mjera bez ičega za mjeriti sada uopće ne ulazi u ocjenu, a njezin redak nestaje umjesto da se prikaže kao „0 / 0 uvjeta pokriveno“.
- Status licence sada je preveden na svih 17 jezika. Ostajao je na engleskom, a kako se pojavljuje unutar rečenica koje su već bile prevedene, rezultat je bio napola preveden redak u statusnoj traci, u obavijestima i u ploči pokrivenih datoteka.
- Prikaz Označeni izvorni kod i skočni podaci o pokrivenosti također su prevedeni — tablica razrade usklađenosti, navigacijski gumbi i njihovi opisi te detalji o granama i MC/DC-u.
Promijenjeno
- Plaćena Pro pretplata sada se može aktivirati vlastitim kodom. Popis planova u zahtjevu za ključ dobio je stavku Pro, pa kod koji stiže uz Pro pretplatu konačno ima gdje biti unesen. Pojedinačni Pro ključevi i dalje rade potpuno izvanmrežno i nakon aktivacije nikada ne kontaktiraju poslužitelj.
- Ikona u traci aktivnosti veća je i bolje vidljiva pokraj ugrađenih ikona.
- Prelazak na Community izdanje sada ga instalira s fucini.software. Prije se pokušavalo preko Marketplacea, gdje Community izdanje nije objavljeno, pa vas je prelazak mogao ostaviti bez ijedne instalirane ekstenzije.
0.2025.10 · build 5 — Mekše slijetanje
2023-12-08
Promijenjeno
- Istekla pretplata sada prelazi na besplatnu razinu — kada bi individualni aktivacijski ključ istekao, proširenje vas je beskonačno tražilo da ga obnovite. Odluka da se pretplata ne obnovi normalan je završetak pretplate, a ne kvar, pa se proširenje sada umjesto toga smješta na trajnu besplatnu razinu Community. Timski planovi namjerno ostaju nepromijenjeni: istekao ključ Pro Plus, Business ili Enterprise i dalje se prijavljuje kao istekao jer ga ondje mora obnoviti administrator, a tiho spuštanje cijele tvrtke na besplatnu razinu to bi sakrilo.
Ispravljeno
- Isključivanje telemetrije sada se poštuje u svakom slučaju. Jedan put kroz kod mogao je preskočiti tu provjeru kada je bio uključen interni način detaljne dijagnostike proširenja. Taj je način isključen u svakoj objavljenoj verziji, pa se nijedno izdanje nikada nije tako ponašalo, no provjera se sada izvodi bezuvjetno.
- Postavke se primjenjuju odmah umjesto da čekaju ponovno učitavanje. Izmjena premapiranja putanja, isključivanja komentara, filtriranja po git-diffu ili zbrojeva za isključene datoteke sada odmah ponovno učitava pokrivenost — osobito premapiranje putanja, jer upravo je to postavka kojoj pribjegavate baš zato što se putanje ne poklapaju.
- „Unlock Full Features” i „Switch to Community” mogli su stati na pola puta bez ikakve poruke. Oba sada dolaze do kraja.
- Vaš aktivacijski ključ ostaje vezan uz isti identitet računala. Na nekim je postavama taj identitet prije mogao biti iznova generiran između sesija, čime bi već izdani ključ postao nevažeći.
0.2025.9 — Potpuni prijevodi
2023-12-02
Dodano
- Potpuni prijevodi na svih 17 isporučenih jezika — otprilike stotinu novijih nizova sučelja, uključujući dijaloge aktivacije i licenciranja, neobaveznu anketu s povratnim informacijama, postupak otključavanja razine Community i obavijesti o samoažuriranju, i dalje se vraćalo na engleski u svakom paketu koji nije engleski. Svih 17 jezika sada pokriva cjelovito izvedbeno sučelje proširenja.
Promijenjeno
- Prolaz radi urednosti kroz komentare u izvornom kodu, dokumentaciju build skripti i popis datoteka za pakiranje. Skup datoteka koje se isporučuju u proširenju nije promijenjen; nema funkcionalnih ni ponašajnih promjena.
0.2025.8 — Izdanja više ne mogu biti u sukobu
2023-11-20
Ispravljeno
- Istovremena instalacija izdanja Pro i Community mogla je srušiti jedno od njih pri pokretanju — registriraju iste naredbe i isti prikaz datoteka pokrivenosti. Sada se to otkriva unaprijed: ako je i drugo izdanje instalirano, aktivacija se uredno zaustavlja uz poruku da deinstalirate jedno od njih, umjesto neobjašnjenog neuspjeha aktivacije.
0.2025.7 — Održavanje
2023-10-30
Izdanje s poslovima održavanja; bez funkcionalnih promjena.
0.2024.6 — Razina Community i timski planovi
2023-10-17
Trajna besplatna razina, timski planovi koji dijele skup mjesta i zasebno Community izdanje proširenja.
Dodano
- Trajna, besplatna razina Community — umjesto naglog prekida po isteku 14-dnevnog probnog razdoblja, proširenje sada prelazi na Community: sve značajke osim MC/DC-a, ograničen mjesečni doticaj s Full HTML Report i trajnim prikazima Annotated Source, velikodušna dnevna ograničenja za nekoliko radnji koje se mogu automatizirati, a sve ostalo bez ograničenja.
- Otključajte sve značajke besplatno — nova naredba „Unlock Full Features” zamjenjuje detaljnu telemetriju korištenja za potpuno, neograničeno pravo korištenja, poništivo u bilo kojem trenutku. Neobavezna anketa s povratnim informacijama u proširenju umjesto toga nagrađuje 30-dnevnim ključem sa svim značajkama, bez ikakvih obveza.
- Timski planovi: Pro Plus, Business i Enterprise — oni dijele skup mjesta (kod tvrtke i broj mjesta) umjesto jednog ključa po stroju, uz pozadinsku prijavu koja održava pravo korištenja mjesta aktualnim i automatski označava opozvano ili smanjeno mjesto.
- Fucini Coverage Studio Community — zaseban, namjenski unos izgrađen iz istog izvornog koda, u kojem kod za probno razdoblje, aktivaciju i timske planove plaćenih razina uistinu nije prisutan, a ne samo skriven. Pogledajte stranicu za preuzimanje.
Promijenjeno
- Generiranje Full HTML Report i trajni prikazi Annotated Source (obični i usporedni) sada su u osnovnoj razini Community značajke plaćenih razina — ostaje samo prikaz s prebacivanjem na mjestu, mjesečno ograničen kao i dosad. Otključavanje i dalje daje pravo na sve to.
- Upozorenje o ograničenju korištenja na razini Community sada nudi oba puta naprijed u jednoj poruci: pogledati plaćene planove ili otključati putem telemetrije.
Ispravljeno
- Detaljnu telemetriju koja može otkriti identitet (korisničko ime u OS-u, matični direktorij, specifikacije CPU-a/RAM-a, mrežna sučelja te potpuni sadržaj izvještaja i izvornog koda) sada mogu slati isključivo Community ili besplatno pravo korištenja uvjetovano telemetrijom — nikada plaćena licenca Pro/Pro Plus/Business/Enterprise, bez obzira na lokalne postavke telemetrije.
- Instalacija koja je već radila na ranijoj verziji više ne dobiva novo probno razdoblje samo zato što je nadograđena — sada ispravno završava na razini Community ako joj je staro probno razdoblje već isteklo.
- Obavijest o ažuriranju, napredak preuzimanja i poruke o pogreškama sada prikazuju običnu verziju
Major.Year.Minor (istu koju prikazuje prikaz Extensions u VS Codeu) umjesto da otkrivaju interni broj builda, npr. 0.2024.6 umjesto 0.2024.6.2.
0.2024.5 — Fino podešeni licencni ključevi
2023-09-03
Aktivacijski ključevi sada mogu zasebno ograničiti pojedine značajke, a administratori licenci mogu ručno izdati fino podešen ključ iz nadzorne ploče.
Dodano
- Ograničenja korištenja po značajki — aktivacijski ključevi sada mogu ograničiti svaku značajku ili radnju neovisno (na primjer, izvoz HTML izvještaja na 1 mjesečno) umjesto jednog zajedničkog ograničenja učitavanja pokrivenosti. Postojeći ključevi nastavljaju raditi nepromijenjeno.
- Ručno izdavanje ključeva — administratori licenci sada mogu ručno izdati ključ za kod zahtjeva primljen izvan upitnika u uređivaču, birajući točno koje značajke odobriti, datum isteka i ograničenja po značajki, pri čemu se ključ automatski šalje e-poštom kada je navedena adresa.
0.2024.4 — Pouzdanost kanala ažuriranja
2023-07-24
Ispravlja grešku u predmemoriranju koja je mogla sakriti nova izdanja od korisnika iza pojedinih korporativnih proxy poslužitelja.
Ispravljeno
- Pouzdanost kanala samoažuriranja — manifest ažuriranja sada se poslužuje sa strogim no-cache zaglavljem, pa proxy poslužitelj s predmemorijom između fucini.software i čitatelja više ne može poslužiti zastarjelu kopiju koja skriva nova izdanja.
0.2024.3 — Manji ispravci i performanse
2023-07-13
Manje održavajuće izdanje: nekoliko manjih ispravaka grešaka i poboljšanja performansi.
Ispravljeno
- Ispravci grešaka — manji ispravci grešaka i poboljšanja stabilnosti.
- Performanse — manja poboljšanja performansi pri učitavanju i prikazu pokrivenosti.
0.2024.2 — Automatizirana aktivacija
2023-06-20
Ključevi za aktivaciju sada se izdaju i primjenjuju automatski — više nema čekanja na e-poštu.
Evaluacijsko izdanje. Svaka instalacija dobiva besplatno 14-dnevno probno razdoblje sa svime otključanim, računajući od prve upotrebe; nakon toga prelazi na besplatnu razinu Community umjesto da prestane raditi. Licencni ključ izdaje se automatski na zahtjev. Saznajte više →
Promijenjeno
- Automatizirana aktivacija — zahtjev za ključ sada šalje kratki upitnik i automatski primjenjuje primljeni ključ na vaše postavke, bez razmjene e-pošte.
- Brže obnove — zahtjev za obnovu postavlja samo pitanja o korištenju i željama; vaši kontaktni podaci iz prethodnog zahtjeva ponovno se koriste, nikad se ne traže iznova.
- Fiksni prozor evaluacije — probni rad sada traje za sve do 31.12.2026., zamjenjujući prethodno 14-dnevno odbrojavanje od instalacije.
- Lokalizirani tijek aktivacije — upitnik za obnovu i potvrde aktivacije sada su prevedeni na svih 18 podržanih jezika, isto kao i ostatak proširenja.
0.2024.1 · build 3 — Pametnija provjera ažuriranja
2023-06-02
Proširenje sada provjerava ažuriranja i na fucini.software i na VS Code Marketplaceu, uvijek nudeći noviju verziju.
Ispravljeno
- Provjera iz dva izvora — sada upituje i fucini.software i VS Code Marketplace, te nudi noviju verziju.
0.2024.0 — Početno izdanje
2023-04-26
Prvo javno izdanje Fucini Coverage Studija — nativno pokrivanje za VS Code koje učitava datoteke tragova industrijskih standarda, normalizira ih u jedan kanonski model, deterministički spaja izvođenja i izvještava putem ugrađenog Test Coverage API-ja VS Codea.
Dodano
- Učitavanje više formata — LCOV, llvm-cov JSON, Cobertura XML, JaCoCo XML, Istanbul/nyc i SimpleCov JSON, automatski prepoznati.
- Deterministično spajanje — više datoteka tragova spojeno u jedno izvođenje sa zabilježenim podrijetlom, stabilno bez obzira na redoslijed učitavanja.
- Nativno sučelje pokrivenosti — oznake redaka/grana/funkcija, pregledno ravnalo i ugrađena ploča Test Coverage.
- MC/DC pokrivenost — raščlamba po odluci pri lebdenju mišem i neobavezna obojena rubna oznaka.
- Kompozitni rezultat — SIL-ponderirana ponderirana harmonijska sredina za retke, grane, funkcije, regije, MC/DC i C++ instanciranja.
- Presuda o sukladnosti — kontrola COMPLIANT / NON-COMPLIANT s načinima
strict, whm, both i either.
- Premapiranje putanja, diferencijalna pokrivenost, Explorer značke i globalna statusna traka.
- Analiza u uređivaču — CodeLens funkcije, lebdenje nad granama, upozorenja o mrtvom kodu, upozorenja o zastarjeloj pokrivenosti te Next/Previous Uncovered.
- Prikaz pokrivenih datoteka, HTML izvještaji, povijest i trendovi, način rada watch i izvoz Fucini JSON-a.