Пример контракта потребителя сообщения pact-js не работает
Я хочу начать работу с Pact, чтобы включить контракты, управляемые потребителями, для нашей архитектуры асинхронного потока сообщений. Прочитав большую часть документации и руководств по началу работы от pact-foundation, я попытался последовать примеру https://github.com/pact-foundation/pact-js/tree/master/examples/messages. Пока мне нужна только Потребительская сторона создания Пакта.
Когда я бегу
npm i
npm run test:consumer
Я получаю следующую ошибку debug
уровень:
[2020-04-02T09:30:19.822Z] INFO: pact@9.2.2/15568 on MYPC: Verifying message
[2020-04-02T09:30:19.829Z] INFO: pact-node@10.8.0/15568 on MYPC: Creating Message
[2020-04-02T09:30:19.839Z] INFO: pact-node@10.8.0/15568 on MYPC: Creating message pact
[2020-04-02T09:30:19.849Z] DEBUG: pact-node@10.8.0/15568 on MYPC: Starting pact binary 'standalone\win32-1.82.1\pact\bin\pact-message.bat', with arguments ...
[2020-04-02T09:30:19.922Z] DEBUG: pact-node@10.8.0/15568 on MYPC: Created 'standalone\win32-1.82.1\pact\bin\pact-message.bat' process with PID: 20196
[2020-04-02T09:30:20.000Z] DEBUG: pact-node@10.8.0/15568 on MYPC:
The filename, directory name, or volume label syntax is incorrect.
Затем я отследил это до звонка.verify(synchronousBodyHandler(dogApiHandler))
внутри message-consumer.spec.ts
что в конечном итоге приводит к class Spawn
что живет в spawn.ts
в репозитории pact-node основы pact.
Для примера, чтобы правильно вызвать логику создания пакта, мне пришлось изменить файл package.json:
"test:consumer": "nyc --check-coverage --reporter=html --reporter=text-summary mocha consumer/*.spec.ts"
к
"test:consumer": "nyc --check-coverage --reporter=html --reporter=text-summary ts-mocha consumer/*.spec.ts"
У меня заканчиваются идеи, так как мои навыки javascript / node.js / typescript довольно ограничены. Был бы признателен за любую помощь. Спасибо и ура, pypapo
1 ответ
Похоже, это может быть ошибка в примере в Windows - не могли бы вы поднять это в репозитории Pact JS? Он должен работать в наших сборках Appveyor, но, возможно, мы не учли кое-что.