e1c-test-tools

Набор инструментов для тестирования (предварительная версия)


Keywords
1C, jest, test-tools, testing, unittest, e1c
License
MIT
Install
npm install e1c-test-tools@0.1.2

Documentation

1C enterprise test tools

Набор инструментов для тестирования (предварительная версия)

Установка

npm install -D e1c-test-tools

или

yarn add -D e1c-test-tools

Дополнительно необходимо установить jest

npm install -D jest

или

yarn add -D jest

и в случае с моими примерами ts-jest с указанными зависимостями.

Настройка

Переменные окружения .env

Основные настройки на данный момент хранятся в .dev, пример настроек в .sample-env (то есть в каталоге проекта создаем файл .dev и добавляем после знака равно соответствующие настройки):

  • BROKER_HOST и BROKER_PORT (необязательно) соответственно хост и порт сервиса обмена сообщениями с 1С, по умолчанию 127.0.0.1:3000
  • PATH_TO_E1C_EXECUTABLE (требуется) путь к запускаемому файлу 1С предприятие
  • E1C_DB_TYPE (требуется) тип базы данных 1С предприятия F(файловая) или S(серверная)
  • E1C_DB_PATH (требуется) путь к базе данных 1С предприятия, так как это указано в документации для соответствующего типа БД.
  • E1C_USER и E1C_USER (требуется, если есть авторизация) пользователь и пароль базы 1С предприятия аналогично флагам /N и /P в документации
  • PATH_TO_EXTERNAL_BIN_FILE (необязательно) путь к файлу внешнего отчета или обработки, который планируется тестировать, на данный момент возможно указать только один файл
  • PATH_TO_MOCKED_EXTERNAL_BIN_FILES (необязательно) путь к директории, где по-вашему мнению должны располагаться отчеты/обработки подготовленные к тестированию
  • PATH_TO_TESTER_EXTERNAL_BIN_FILE (необязательно) путь к файлу обработки, которая используется для тестирования. Если не указывать, то используется обработка по умолчанию.

Настройка jest

npx ts-jest config:init 

или

yarn ts-jest config:init

Для js вместо этого нужно выполнить jest --init, с использованием npx или yarn соответственно, или без, если jest установлен глобально. Далее для глобальных сетапа и тирдауна необходимо добавить в jest.config.js следующие поля:

    'globalSetup': './node_modules/e1c-test-tools/dist/e1c-test-tools/test-tools/helpers/jest-global-setup.js',
    'globalTeardown': './node_modules/e1c-test-tools/dist/e1c-test-tools/test-tools/helpers/jest-global-teardown.js',

Они обеспечивают запуск сервиса брокера и 1С предприятия, а так же подготовку внешних отчетов/обработок для тестирования.

Использование

Пример тестов можно посмотреть в репозитории проекта. Там же можно посмотреть пример недомока, который в дальнейшем планируется генерировать автоматически, для более удобного написания тестов.

Чтобы каждый раз для запуска тестов не ждать, пока запустится окружение, можно воспользоваться скриптом start-up-test-env

npx start-up-test-env 

или

yarn start-up-test-env

Аналогично запускаются другие скрипты:

  • shut-down-test-env предназначен для остановки работы 1С предприятия
  • stop-polling предназначен для остановки цикла опроса сервиса брокера со стороны 1С предприятия

Само выполнение тестов запускается

npx jest 

или

yarn jest

Дополнительно

PS: На ванильном js проект не тестировался, но есть мнение, что все будет хорошо :)