【问题标题】:pact- Contract Testing- The PACT file is not getting picked up for the executionpact- 合同测试- PACT 文件没有被拾取执行
【发布时间】:2017-08-28 17:25:35
【问题描述】:

最初通过从 github 位置下载项目开始分析 PACT。在现有项目中,我已经包含了我的 GET 请求 services.groupkt.com/country/get/iso2code/IN 的代码。

我能够生成 PACT 文件,但是当我尝试从生产者端验证时,我收到以下消息

 D:\microservices-pact-maven-master\microservices-pact-consumer>mvn    au.com.dius:p
act-jvm-provider-maven_2.11:verify
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building microservices-pact-consumer 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- pact-jvm-provider-maven_2.11:3.2.2:verify (default-cli) @ microservic
es-pact-consumer ---
Loading pact files for provider Foo_Provider from D:\microservices-pact-maven-ma
ster\microservices-pact-consumer\target\pacts
Skipping D:\microservices-pact-maven-master\microservices-pact-consumer\target\p
**acts\Country_Consumer-Country_Provider.json as the provider names don't match pr
ovider.name: Foo_Provider vs pactJson.provider.name: Country_Provider
Found 1 pact files**

Verifying a pact between Foo_Consumer and Foo_Provider
  [Using file D:\microservices-pact-maven-master\microservices-pact-consumer\tar
get\pacts\Foo_Consumer-Foo_Provider.json]
  a request for Foos
    returns a response which
      has status code 200 (OK)
      includes headers

谁能帮我解决这个问题。

提前致谢

苏什玛

【问题讨论】:

    标签: pact


    【解决方案1】:

    这可能是在创建 PACT 的消费者测试中提到的提供者名称存在问题。我认为您的代码在您的消费者协议类中具有以下值。

    @Pact(provider = "Foo_provider", consumer = "Foo_consumer")

    请根据您的要求更改提供者和消费者的名称。再次运行消费者测试,然后运行提供者测试。

    【讨论】:

    • 感谢您的 cmets。消费者 Pact 类具有正确的消费者和提供者名称。 @SuppressWarnings("deprecation") @Pact(provider="Country_Provider", consumer="Country_Consumer") public PactFragment createFragment(PactDslWithProvider builder) { Map headers = new HashMap(); headers.put("Content-Type", "application/json;charset=UTF-8");
    • 这也是我的终点 services.groupkt.com/country/get/iso2code/IN。对此的响应是 {"RestResponse": {"messages": ["更多网络服务可在 groupkt.com/post/f2129b88/services.htm","Country 找到匹配代码 [IN]。"],"result": {"name": "India","alpha2_code ": "IN","alpha3_code": "IND"}}}。
    • 我写的代码是 return builder.uponReceiving("a request for Country") .path("/iso2code/IN") .method("GET") .willRespondWith() .headers (标题) .status(200) .body("[{" + "\"name\":\"India\"," + "\"alpha2_code\":\"IN\"," + "\"alpha3_code \":\"IND\"" + "}]")。 toFragment(); }
    • 我觉得我没有包括整个回复。我们需要这样做吗?或者这会工作吗
    • 你能提供你用过的provider的pom.xml插件吗?插件中的名称应该与我们在协议文件名中的名称相匹配。
    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2020-12-01
    • 2023-02-20
    • 1970-01-01
    • 2022-11-22
    • 2020-09-29
    相关资源
    最近更新 更多