pact- js Пример потребительского контракта сообщения не работает - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу начать с Pact, чтобы включить Consumer Driven Contracts для нашей асинхронной архитектуры потока сообщений. Прочитав большую часть документации и руководств по началу работы с 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 Creation logi c Мне пришлось изменить пакет. Файл 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 Ответ

0 голосов
/ 04 апреля 2020

Похоже, это может быть ошибка в примере на Windows - не могли бы вы быть так любезны, чтобы поднять это в репозитории Pact JS? Он должен работать на наших сборках Appveyor, но, возможно, есть что-то, что мы не рассмотрели.

...