Пример реализации Pact-js e2e [Проблема: не удается получить/состояния] MAC OS

Нужна помощь в решении вышеуказанной проблемы «не удается получить/состояния» для http:/localhost:8081/states. Я прошел через https://groups.google.com/forum/#!topic/pact-support/zGj8o6snf5c, очень помогло, но ответа не нашел.

URL репозитория GitHub: https://github.com/pactfoundation/pactjs/tree/master/examples/e2e

Я настроил пример Pact-js e2e на своей машине OS X EI Captain[10.11].

  1. Запустите потребительский тест ./node_modules/.bin/mocha test/consumer.spec.js Получил успешный результат.

Pact
    when a call to list all animals from the Animal Service is made
      and there are animals in the database
        ✓ returns a list of animals
    when a call to the Animal Service is made to retreive a single animal by ID
      and there is an animal in the DB with ID 1
        ✓ returns the animal
      and there no animals in the database
        ✓ returns a 404
    when interacting with Animal Service
      ✓ should validate the interactions and create a contract

  1. Опубликуйте тесты node test/publish.js. Получил успешный результат.

Pact contract publishing complete!

Head over to https://test.pact.dius.com.au/ and login with
=> Username: dXfltyFMgNOFZAxr8io9wJ37iUpY42M
=> Password: O5AIZWxelWbLvqMd8PkAVycBJh2Psyg1
to see your published contracts.

  1. Запустите API потребителя и поставщика npm run api. Получил успешный результат

Animal Profile Service listening on http://localhost:8081
Animal Matching Service listening on http://localhots:8080

  1. Запустите тест провайдера ./node_modules/.bin/mocha test/provider.spec.js. Здесь ошибка

1) Uncaught error outside test suite
  Pact Verification
Pact Verification Failed:  Error: /Users/sakshi.rawal/work/pact-js/node_modules/@pact-foundation/pact-provider-verifier-darwin/lib/vendor/ruby/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse': 757: unexpected token at 'Cannot GET /states (Faraday::ParsingError)
'

Не могли бы вы помочь мне в устранении ошибки на шаге 4. Еще один вопрос на шаге 3: когда я нажимаю на ссылку в выводе, она не запрашивает имя пользователя и пароль.

Спасибо,
Сакши


person Sakshi    schedule 24.02.2017    source источник
comment
Исправлены шаги выше   -  person Sakshi    schedule 24.02.2017


Ответы (2)


Можете ли вы перепроверить, что у вас есть последний код? Похоже, что сместилась транзитивная зависимость, которой не нравился существующий тип контента. Я исправил его на днях.

person Matthew Fellows    schedule 01.03.2017
comment
Спасибо :) Я сделал git pull, и все заработало. Только одна вещь о /states и /setup. После шага 3, когда я попадаю в эти конечные точки, он говорит, что не может GET /states. Та же ошибка для /suggestions/1,/setup. Генерируются ли состояния и настройки только при запуске спецификации поставщика? - person Sakshi; 01.03.2017
comment
Верный. Они должны настроить фикстуры данных для соответствующих клиентских тестов, которые ожидают, что данные будут или не будут. - person Matthew Fellows; 01.03.2017
comment
Но когда профиль API запущен, localhost:8081/states дает не может GET /states. Он должен дать список штатов? - person Sakshi; 01.03.2017
comment
/states нужен только для тестов, он не является частью реального API, поэтому он объявлен только в спецификации. - person Matthew Fellows; 01.03.2017
comment
Большое спасибо Матвею за помощь. - person Sakshi; 07.03.2017

Шаг 3, указанный выше, не является обязательным, он просто проверяет и использует работающие API.

Я подозреваю, что на шаге 4 невозможно запустить провайдера с дополнительными конечными точками, поскольку он уже работает на том же порту на шаге 3, что и приводит к сбою. Это означает, что он не может найти конечную точку/состояния во время процесса проверки.

Закройте все процессы, а затем выполните шаг 4, и эта конечная точка должна быть добавлена, и тесты должны пройти.

person Matthew Fellows    schedule 25.02.2017
comment
Извините за задержку с ответом. Спасибо за ответ @Matthew Fellows Шаг 4 сработал, когда я закрыл процессы на шаге 3. Но теперь ошибка: Pact Verification Failed: Error: /Users/sakshi.rawal/work/pact-js/node_modules/@pact-foundation/pact-provider-verifier-darwin/lib/vendor/ruby/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in parse: 757: unexpected token at 'TypeError: invalid media type<br> &nbsp; &nbsp;at Object.parse (/Users/sakshi.rawal/work/pact-js/examples/e2e/node_modules/content-type/index.js:130:11)<br> &nbs". - person Sakshi; 01.03.2017