При переходе на современные методологии разработки (такие как TDD — Test-Driven Development) и выстраивании CI/CD-процессов в среде 1С разработчики часто сталкиваются со сложной задачей. Необходимо централизовать хранение тестовых сценариев, внешних обработок, инициализационных файлов (XML, JSON, YML) и тестовых поставок, обеспечив при этом полноценную интеграцию с системой контроля версий Git. При этом многие команды по разным причинам отказываются от использования тяжеловесной среды 1С:EDT (Eclipse-based), предпочитая классический Конфигуратор.
В этой статье мы подробно разберем, какие готовые инструменты и конфигурации существуют в экосистеме 1С для решения этих задач, как они взаимодействуют друг с другом и как развернуть полноценный стек тестирования на практике.
Для создания надежного конвейера тестирования нам необходимо закрыть следующие ключевые потребности:
Рассмотрим лучшие инструменты, которые позволяют решить эти задачи в рамках «родной» экосистемы 1С.
Семейство инструментов Vanessa на сегодняшний день является стандартом де-факто для автоматизации тестирования в мире 1С. Исторически развиваясь из проекта xUnitFor1c, экосистема разделилась на два мощных направления:
.feature, что делает их идеальными для версионирования в Git. Инструмент официально поддерживается фирмой «1С» и интегрируется с конфигурацией 1С:СППР.Управление тестовыми данными в Vanessa:
Чтобы не зашивать тестовые данные внутрь конфигурации или обработок, «Ванесса» позволяет использовать внешние файлы конфигурации. Например, файл user_settings.json может содержать параметры подключения и настройки сред. Все эталонные JSON, XML или YML-файлы инициализации хранятся в подкаталогах репозитория Git рядом с тестами и загружаются динамически в момент выполнения сценария с помощью встроенных шагов работы с файловой системой.
Если вам требуется централизованное «родное» решение от фирмы «1С» для управления всем жизненным циклом разработки, включая тестирование, то 1С:СППР — лучший выбор. Современные версии СППР предоставляют мощный функционал:
1С:Тестер — это альтернативная и очень гибкая среда для разработки и выполнения тестов, выполненная в виде отдельной конфигурации 1С. В отличие от Vanessa, ориентированной на Gherkin, в Tester написание сценариев происходит на встроенном языке (очень похожем на JavaScript/1С), что дает колоссальные возможности программирования сложных проверок.
Основные преимущества:
Входит в состав Корпоративного инструментального пакета (КИП). В последних редакциях (3.0.x) разработчики получили возможность визуального версионирования и сравнения сценариев прямо внутри информационной базы. Сценарии можно выгружать во внешние файлы для последующего коммита в Git, что позволяет организовать работу распределенной команды.
Выясним, как настроить полноценный процесс тестирования и CI/CD, если команда работает в классическом Конфигураторе 1С. Мы объединим Конфигуратор, Git, OneScript и Vanessa Automation в единую цепочку.
Рассмотрим по шагам архитектуру и процесс работы:
Шаг 1. Организация структуры репозитория
В корне вашего Git-репозитория проекта создается строгая структура папок:
/src — исходный код конфигурации (выгруженный в файлы конфигурации)./tests — папка со всеми тестовыми материалами./tests/features — файлы сценариев Vanessa Automation (.feature)./tests/fixtures — файлы данных для инициализации (JSON, XML, YML)./tests/epf — внешние обработки, выполняющие специфическую подготовку данных или юнит-проверки.Шаг 2. Синхронизация кода с Git (gitsync)
Поскольку разработчики работают в обычном Конфигураторе, для выгрузки изменений в Git используется утилита gitsync (работающая на OneScript). Разработчик выполняет работу в базе, а скрипт автоматически выгружает конфигурацию в файлы XML и отправляет коммит в Git.
Шаг 3. Инициализация тестовых данных
Для загрузки файлов из папки /tests/fixtures в процессе выполнения интеграционного теста мы пишем специальный шаг на Gherkin в Vanessa Automation. Рассмотрим пример кода сценария, который подтягивает JSON-файл инициализации перед выполнением проверки контрагента:
Функционал: Проверка загрузки и валидации контрагентов
Сценарий: Загрузка эталонного контрагента из JSON
Дано Я открываю тестовую базу данных
И Я загружаю фикстуру "контрагент_дефолт.json" из каталога проектов
Когда Я открываю форму списка справочника "Контрагенты"
Тогда В списке присутствует контрагент с ИНН "7701020304"
При этом сам файл контрагент_дефолт.json лежит в папке /tests/fixtures и содержит структуру полей:
{
"Наименование": "ООО Рога и Копыта",
"ИНН": "7701020304",
"КПП": "770101001",
"ЮридическийАдрес": "г. Москва, ул. Ленина, д. 1"
}
Шаг 4. Настройка CI/CD-конвейера (на примере GitLab CI)
При пуше изменений в ветку Git сервер автоматизации (например, GitLab Runner) запускает пайплайн. Проанализируем типичный сценарий автоматического тестирования:
/src.TestManager с передачей параметров командной строки./tests/features, инициализирует данные из /tests/fixtures, прогоняет тесты и формирует отчет в формате Allure.Таким образом, используя связку из Vanessa Automation (или Tester), утилит OneScript и классического Конфигуратора, вы получаете мощную, гибкую и полностью бесплатную среду тестирования. При этом все сценарии и исходный код конфигурации надежно версионируются в Git, обеспечивая прозрачность разработки и стабильность релизов без необходимости пересаживать команду на тяжеловесную 1С:EDT.