1coverage
Приложение OneScript для расчета покрытия исходного кода конфигураций 1С
Install / Use
/learn @ovcharenko-di/1coverageREADME
1coverage
ВНИМАНИЕ! Проект переведен в архив. Замер покрытия реализован гораздо более элегантно в другом проекте - Coverage41C
Приложение OneScript для расчета покрытия исходного кода конфигураций 1С
Состав приложения
- dbgs-proxy - логирующий реверс-прокси для 1С на Node.js
- 1coverage - приложение, которое управляет сбором замеров производительности и конвертирует их в формат genericCoverage или lcov
Принцип работы
Общий принцип работы

dbgs-proxy работает между сервером отладки и тестируемым приложением, перехватывает и сохраняет данные замеров производительности в файл. Затем приложение конвертирует этот файл в формат genericCoverage или lcov.
Команда convert
ОбработчикЛоговПроксипринимает на вход путь к логам прокси, обрабатывает их и формирует таблицуДанныеЗамеров. ТаблицаДанныеЗамеровсодержит только исходные данные, которые перехватил прокси - Ид объектов, Ид типов модулей и номера строк.ОбработчикДанныхЗамеровпринимает на входДанныеЗамерови путь к исходному коду конфигурации, а по ним определяет пути к модулям и формирует таблицуДанныеПокрытия. Для определения объектов конфигурации использует классОбработчикФайловКонфигурации.ГенераторОтчетаОПокрытиипринимает на входДанныеПокрытияи генерирует отчет о покрытии в выбранном формате.
Требования к окружению
- ОС Windows
- git
- OneScript 1.2
- платформа 1С версии не ниже 8.3
- Node.js
- исходники конфигурации в формате XML или EDT
- проект в SonarQube, связанный с целевой конфигурацией
Установка
Рекомендуется выполнять установку из консоли с правами Администратора
Вне зависимости от выбранного способа, dbgs-proxy будет установлен в каталог 1coverage.
Рекомендуемый способ:
- выполнить команду
opm install 1coverageдля установки самого приложения - выполнить команду
1coverage installдля установки dbgs-proxy в каталоге приложения
Ручной способ:
- клонировать репозиторий
- из каталога репозитория выполнить команду
oscript ./src/1coverage/1coverage.os install
Использование
1coverage init1coverage start1coverage stop1coverage convert
Запуск тестов
Для запуска всех тестов необходимо в каталоге приложения выполнить команду opm run test.
Выполнение тестов требует наличия vanessa-runner.
Известные проблемы
- Не удалось определить Ид информационной базы.
Причины:
- База не зарегистрирована в списке ИБ текущего пользователя.
- База расположена вне репозитория git и была добавлена в список с помощью vanessa-runner@1.9.0 командой init-dev. Способ обхода: указать параметр
--root, напримерrunner init-dev --root <КаталогПроекта> - Использование библиотеки ParseFileV8i@0.0.5 совместно с vanessa-runner@1.9.0 приводит к тому, что ParseFileV8i не может найти зарегистрированную базу в списке.
Помощь проекту
Крайне приветствуется, см. CONTRIBUTING.md
Благодарности
- @asosnoviy, автору прототипа, который был взят за основу этого приложения
- сообществу OneScript и oscript-library, откуда я заимствовал наиболее удачные решения.
