e1c-test-tools
Version:
Набор инструментов для тестирования (предварительная версия)
104 lines (68 loc) • 5.46 kB
Markdown
# 1C enterprise test tools
Набор инструментов для тестирования (предварительная версия)
## Установка
``` bash
npm install -D e1c-test-tools
```
или
``` bash
yarn add -D e1c-test-tools
```
Дополнительно необходимо установить [jest](https://jestjs.io/)
``` bash
npm install -D jest
```
или
``` bash
yarn add -D jest
```
и в случае с моими примерами [ts-jest](https://www.npmjs.com/package/ts-jest) с указанными зависимостями.
## Настройка
### Переменные окружения `.env`
Основные настройки на данный момент хранятся в `.dev`, пример настроек в [.sample-env](https://raw.githubusercontent.com/cinex-ru/e1c-test-tools/master/.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С предприятия, так как это указано в [документации](https://its.1c.ru/db/v8318doc/bookmark/adm/TI000000810) для соответствующего типа БД.
- `E1C_USER` и `E1C_USER` (требуется, если есть авторизация) пользователь и пароль базы 1С предприятия аналогично флагам `/N` и `/P` в [документации](https://its.1c.ru/db/v8318doc/bookmark/adm/TI000000811)
- `PATH_TO_EXTERNAL_BIN_FILE` (необязательно) путь к файлу внешнего отчета или обработки, который планируется тестировать, на данный момент возможно указать только один файл
- `PATH_TO_MOCKED_EXTERNAL_BIN_FILES` (необязательно) путь к директории, где по-вашему мнению должны располагаться отчеты/обработки подготовленные к тестированию
- `PATH_TO_TESTER_EXTERNAL_BIN_FILE` (необязательно) путь к файлу обработки, которая используется для тестирования. Если не указывать, то используется обработка по умолчанию.
### Настройка jest
``` bash
npx ts-jest config:init
```
или
``` bash
yarn ts-jest config:init
```
Для js вместо этого нужно выполнить `jest --init`, с использованием `npx` или `yarn` соответственно, или без, если `jest` установлен глобально.
Далее для глобальных сетапа и тирдауна необходимо добавить в `jest.config.js` следующие поля:
```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С предприятия, а так же подготовку внешних отчетов/обработок для тестирования.
## Использование
[Пример тестов](https://github.com/cinex-ru/e1c-test-tools/blob/master/tests/tester.spec.ts) можно посмотреть в репозитории проекта. Там же можно посмотреть [пример недомока](https://github.com/cinex-ru/e1c-test-tools/blob/master/tests/__e1c-mocks__/TesterEpf.ts), который в дальнейшем планируется генерировать автоматически, для более удобного написания тестов.
Чтобы каждый раз для запуска тестов не ждать, пока запустится окружение, можно воспользоваться скриптом `start-up-test-env`
``` bash
npx start-up-test-env
```
или
``` bash
yarn start-up-test-env
```
Аналогично запускаются другие скрипты:
- `shut-down-test-env` предназначен для остановки работы 1С предприятия
- `stop-polling` предназначен для остановки цикла опроса сервиса брокера со стороны 1С предприятия
Само выполнение тестов запускается
``` bash
npx jest
```
или
``` bash
yarn jest
```
## Дополнительно
PS: На ванильном js проект не тестировался, но есть мнение, что все будет хорошо :)