/1coverage

Приложение OneScript для расчета покрытия исходного кода конфигураций 1С

Primary Language1C EnterpriseMIT LicenseMIT

1coverage

Приложение OneScript для расчета покрытия исходного кода конфигураций 1С

Состав приложения

  • dbgs-proxy - логирующий реверс-прокси для 1С на Node.js
  • 1coverage - приложение, которое управляет сбором замеров производительности и конвертирует их в формат genericCoverage или lcov

Принцип работы

Общий принцип работы

1coverage

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 init
  • 1coverage start
  • 1coverage stop
  • 1coverage convert

Запуск тестов

Для запуска всех тестов необходимо в каталоге приложения выполнить команду opm run test. Выполнение тестов требует наличия vanessa-runner.

Известные проблемы

  • Не удалось определить Ид информационной базы.

Причины:

  1. База не зарегистрирована в списке ИБ текущего пользователя.
  2. База расположена вне репозитория git и была добавлена в список с помощью vanessa-runner@1.9.0 командой init-dev. Способ обхода: указать параметр --root, например runner init-dev --root <КаталогПроекта>
  3. Использование библиотеки ParseFileV8i@0.0.5 совместно с vanessa-runner@1.9.0 приводит к тому, что ParseFileV8i не может найти зарегистрированную базу в списке.

Помощь проекту

Крайне приветствуется, см. CONTRIBUTING.md

Благодарности

  • @asosnoviy, автору прототипа, который был взят за основу этого приложения
  • сообществу OneScript и oscript-library, откуда я заимствовал наиболее удачные решения.