Загружайте трассировочные файлы lcov, llvm-cov JSON, Cobertura, JaCoCo, Istanbul, SimpleCov, Clover, OpenCover, coverage.py, gcov, Go, Coveralls, SonarQube, GNATcoverage, Bullseye, Visual Studio, Xcode, VectorCAST, Testwell CTC++, TRACE32, EMMA, UCIS/UCDB, NCover и dotCover, нормализуйте их в одну каноническую модель, детерминированно объединяйте прогоны и читайте результат прямо на полях редактора — в VS Code и в Visual Studio 2022 и 2026 в любой редакции. Никакого отдельного просмотрщика, ради которого надо покидать редактор.
Бесплатный старт. Fucini Coverage Studio работает бесплатно в течение 14-дневного пробного периода, и все функции разблокированы. После этого расширение не блокирует вас, а переходит на бесплатный уровень Community — все функции, кроме MC/DC, со щедрыми месячными лимитами у нескольких из них. В любой момент перейдите на платный план ради набора без ограничений или разблокируйте всё бесплатно, поделившись подробной телеметрией использования. Посмотреть планы →
Следующим: всё это покрытие в Azure DevOps, в бесплатном расширении. Azure DevOps показывает покрытие сборки лишь в пределах собственного формата — строки и ветви в процентах. Fucini DevOps Studio покажет всё, что читает Coverage Studio: каждый из этих 25 форматов, для каждого языка, с MC/DC, условиями, составной оценкой и порогами — как вкладку Coverage на конвейере, который его создал. Следите за новостями, чтобы не пропустить первый выпуск.
Screenshot pending — add assets/img/hero.png (see SCREENSHOTS.md).Когда тесты написал ИИ
Языковая модель напишет вам набор тестов за секунды, и он будет читаться убедительно. Чего она не скажет — доходят ли эти тесты до чего-то значимого. Построчное покрытие тоже не скажет, потому что тест вообще без единого утверждения всё равно подсветит каждую строку, которой коснулся.
MC/DC и покрытие ветвей показывают, была ли каждая развилка действительно пройдена, а не только достигнута ли строка. Сгенерированные тесты обычно идут счастливым путём и оставляют вторую сторону каждого if нетронутой — это читается как 100% строк и 50% ветвей. Этот разрыв и есть находка.
Обнаружение мёртвого кода перечисляет функции, до которых не дошёл ни один тест. Сгенерированный набор называет их в заголовках тестов и никогда до них не добирается — в зелёном прогоне это незаметно.
Покрытие diff измеряет только то, что изменилось относительно git-базы, так что «тесты проходят» превращается в «код, который вы только что приняли, покрыт тестами». Работает одинаково, написал его человек или ассистент.
Ничто из этого не доказывает, что тест хорош — этого не может ничто. Это говорит вам точно и построчно, что никогда не выполнялось: ту часть, которую рецензент не удержит в голове, а ассистент сам не назовёт. Работает с TypeScript и JavaScript через Vitest, Jest или nyc и с C, C++, Java и Ruby через tracefile, которые эти инструменты и так создают.
Чем мы отличаемся
LCOV, llvm-cov JSON, Cobertura, JaCoCo, Istanbul/nyc, SimpleCov, Clover, OpenCover, coverage.py, gcov JSON и обычный текст, Go, Coveralls, SonarQube, GNATcoverage, Bullseye, Visual Studio, Xcode, VectorCAST, Testwell CTC++, TRACE32, EMMA, UCIS/UCDB, NCover и dotCover — автоматически определяются и детерминированно объединяются с зафиксированным происхождением.
Индикаторы строк, ветвей и функций, обзорная линейка, значки в Проводнике и представление Covered Files.
Modified Condition/Decision Coverage, покрытие регионов и инстанциаций C++ из llvm-cov, с разбивкой по каждому решению при наведении курсора.
Единое взвешенное среднее гармоническое по всем метрикам, с весами, согласованными с уровнями IEC 61508 / ISO 26262 / DO-178C.
Вердикты COMPLIANT / NON-COMPLIANT с порогами для каждой метрики и режимами strict, whm, both или either.
Ограничьте оформление только строками, изменёнными относительно базовой ветки git — идеально для проверки того, что именно покрыл или не покрыл PR.
Fucini Coverage: Run Tests with Coverage. Команда распознаёт vitest, jest, pytest, go, cargo, dotnet, maven, gradle, phpunit и ctest, запускает тесты с включённым покрытием и загружает то, что они записали. Уже есть файл трассировки? Fucini Coverage: Pick Coverage File загрузит его и запомнит.Требуется VS Code ≥ 1.88 либо Visual Studio 2022 или 2026 — Community, Professional или Enterprise — и трассировочный файл покрытия, который ваш проект уже создаёт. В Visual Studio 2022 встроенное покрытие есть только в Enterprise; Coverage Studio для Visual Studio показывает его и в Community и Professional — из файла, который ваша сборка уже пишет.
VS Code и несколько бесплатных расширений тоже показывают покрытие. Вот что, согласно их собственной документации, умеет каждое на сентябрь 2026 года: если README о чём-то не упоминает, таблица так и говорит, а не гадает.
| Fucini Coverage Studio | VS Code, встроенное | Coverage Gutters | Code Coverage (markis) | Gcov Viewer | |
|---|---|---|---|---|---|
| Откуда берётся покрытие | 25 форматов файлов трассировки, а также отчёты мутационного тестирования PIT и Stryker | расширение для тестирования, которое сообщает покрытие | файлы lcov и XML | файлы lcov | файлы .gcda от GCC, через gcov |
| Непокрытые строки в редакторе | ✓ | ✓ | ✓ | ✓, а также в Problems | ✓ |
| Покрытие ветвлений, для каждой ветви | ✓ | если расширение для тестирования его сообщает | не описано | не описано | не описано |
| MC/DC | ✓ (Pro) | — | не описано | не описано | не описано |
| Несколько файлов трассировки объединены, и видно, какой покрыл каждую строку | ✓ | — | поддерживается несколько файлов | не описано | не описано |
| Перезагрузка при изменении файла трассировки | ✓ | показывает последний запуск тестов | ✓ | не описано | не описано |
| Покрытие изменений, пороги и история | ✓ | покрытие показано в редакторе изменений | не описано | не описано | не описано |
| HTML-отчёт | генерируется, размещается у вас | — | предпросмотр существующего | не описано | не описано |
| Покрытие для ИИ-агентов: инструменты языковой модели и MCP-сервер | ✓ | не описано | не описано | не описано | не описано |
| Тесты, выполнившие строку, и тесты, которых касаются ваши изменения | ✓ | покрытие по тестам, когда расширение тестирования его сообщает | не описано | не описано | не описано |
| Результаты мутационного тестирования в редакторе | ✓ (PIT, Stryker) | не описано | не описано | не описано | не описано |
| Порог для нового кода | ✓ | не описано | не описано | не описано | не описано |
| Те же числа в Visual Studio и в командной строке | ✓ | — | не описано | не описано | не описано |
Это не выбор «или-или» с собственным представлением VS Code: каждая загрузка публикуется и на встроенной панели Test Coverage, вместе с фильтром по тесту. Что-то здесь устарело? Напишите на странице контактов.
| Формат | Типичный файл |
|---|---|
| LCOV | lcov.info, *.info |
| llvm-cov JSON | llvm-cov export --format=json |
| Cobertura XML | coverage.xml |
| JaCoCo XML | jacoco.xml |
| Istanbul / nyc | coverage-final.json |
| SimpleCov (Ruby) | .resultset.json, coverage.json |
| Clover XML | clover.xml |
| OpenCover XML | coverage.opencover.xml |
| coverage.py JSON | coverage.json (coverage json) |
| gcov / gcovr JSON | gcov --json-format --stdout, gcovr --json |
| Go coverage profile | coverage.out |
| SonarQube generic | <coverage version="1"> XML |
| GNATcoverage XML (Ada) | gnatcov coverage --annotate=xml |
| BullseyeCoverage XML | covxml output |
| Visual Studio | .coveragexml (dotnet-coverage convert) |
| Coveralls JSON | coveralls.json |
| Xcode xccov JSON | xcrun xccov view --report --json |