НАТИВНОЕ ПОКРЫТИЕ В VS CODE И VISUAL STUDIO

Покрытие, которое живёт в вашем редакторе

Загружайте трассировочные файлы 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 в любой редакции. Никакого отдельного просмотрщика, ради которого надо покидать редактор.

Скачать VSIX Читать руководство пользователя Изучить возможности

Бесплатный старт. Fucini Coverage Studio работает бесплатно в течение 14-дневного пробного периода, и все функции разблокированы. После этого расширение не блокирует вас, а переходит на бесплатный уровень Community — все функции, кроме MC/DC, со щедрыми месячными лимитами у нескольких из них. В любой момент перейдите на платный план ради набора без ограничений или разблокируйте всё бесплатно, поделившись подробной телеметрией использования. Посмотреть планы →

Следующим: всё это покрытие в Azure DevOps, в бесплатном расширении. Azure DevOps показывает покрытие сборки лишь в пределах собственного формата — строки и ветви в процентах. Fucini DevOps Studio покажет всё, что читает Coverage Studio: каждый из этих 25 форматов, для каждого языка, с MC/DC, условиями, составной оценкой и порогами — как вкладку Coverage на конвейере, который его создал. Следите за новостями, чтобы не пропустить первый выпуск.

Covered/uncovered gutters with the Test Coverage panel openScreenshot 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.

◆ MC/DC и регионы

Modified Condition/Decision Coverage, покрытие регионов и инстанциаций C++ из llvm-cov, с разбивкой по каждому решению при наведении курсора.

◆ Оценка, взвешенная по безопасности

Единое взвешенное среднее гармоническое по всем метрикам, с весами, согласованными с уровнями IEC 61508 / ISO 26262 / DO-178C.

◆ Контроль соответствия

Вердикты COMPLIANT / NON-COMPLIANT с порогами для каждой метрики и режимами strict, whm, both или either.

◆ Дифференциальное покрытие

Ограничьте оформление только строками, изменёнными относительно базовой ветки git — идеально для проверки того, что именно покрыл или не покрыл PR.

Готово к работе за 30 секунд

  1. Установите расширение и откройте свой проект.
  2. Запустите тесты — палитра команд → Fucini Coverage: Run Tests with Coverage. Команда распознаёт vitest, jest, pytest, go, cargo, dotnet, maven, gradle, phpunit и ctest, запускает тесты с включённым покрытием и загружает то, что они записали. Уже есть файл трассировки? Fucini Coverage: Pick Coverage File загрузит его и запомнит.
  3. Откройте файл с кодом — поле редактора показывает, какие строки выполнялись, строка состояния — процент файла, подсказка — число выполнений каждой строки, а сам запуск появляется в представлении Coverage и на собственной панели Test Coverage в VS Code. Дальше всё перезагружается само, как только файл трассировки меняется.

Требуется 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 StudioVS Code, встроенноеCoverage GuttersCode 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, вместе с фильтром по тесту. Что-то здесь устарело? Напишите на странице контактов.

Поддерживаемые форматы

ФорматТипичный файл
LCOVlcov.info, *.info
llvm-cov JSONllvm-cov export --format=json
Cobertura XMLcoverage.xml
JaCoCo XMLjacoco.xml
Istanbul / nyccoverage-final.json
SimpleCov (Ruby).resultset.json, coverage.json
Clover XMLclover.xml
OpenCover XMLcoverage.opencover.xml
coverage.py JSONcoverage.json (coverage json)
gcov / gcovr JSONgcov --json-format --stdout, gcovr --json
Go coverage profilecoverage.out
SonarQube generic<coverage version="1"> XML
GNATcoverage XML (Ada)gnatcov coverage --annotate=xml
BullseyeCoverage XMLcovxml output
Visual Studio.coveragexml (dotnet-coverage convert)
Coveralls JSONcoveralls.json
Xcode xccov JSONxcrun xccov view --report --json
Посмотреть все возможности Полное руководство пользователя