我成功地将 Pact JS 中的合约发布到 Pact Broker,现在正在尝试在 Java Spring Boot 中验证合约,合约验证通过,没有任何问题,但验证的结果不会发布到 Pact Broker,这使得Pactflow 上的联系方式未经验证,这是我正在使用的插件
<plugin>
<groupId>au.com.dius.pact.provider</groupId>
<artifactId>maven</artifactId>
<version>4.1.11</version>
<configuration>
<serviceProviders>
<serviceProvider>
<name>UsersService</name>
<pactBroker>
<url>--myPactFlowURL--</url>
<authentication>
<scheme>bearer</scheme>
<token>--myTOKEN--</token>
</authentication>
</pactBroker>
</serviceProvider>
</serviceProviders>
</configuration>
</plugin>
我运行
mvn pact:verify
,我得到了这个:
Given Add user
WARNING: State Change ignored as there is no stateChange URL
request for adding user
returns a response which
has status code 201 (OK)
has a matching body (OK)
对于合同中的每一次互动,每个人都有很多互动,我收到警告,但一切都顺利 最后,我得到这个注意:
NOTE: Skipping publishing of verification results as it has been disabled (pact.verifier.publishResults is not 'true')
我尝试通过多种方式更改此系统属性
pact.verifier.publishResults
。我尝试用这个 mvn pact:verify -Dpact.verifier.publishResults='true'
运行我的验证命令,我也尝试在 maven-surefire-plugin 中设置它,但仍然没有任何效果。
最后,这对我有用,在我的
pact.provider
插件中,我添加了一个单独的配置块,而不是我在其中设置契约代理参数的配置块
该配置块如下所示:
<configuration>
<pact.verifier.publishResults>true</pact.verifier.publishResults>
</configuration>
我在尝试 verifyPact 时遇到了类似的问题,它没有在经纪人上发布已验证。
如果您使用像 IntelliJ IDEA 这样的 IDE,当您执行 verifyPact 任务时,您需要在环境变量中设置以下内容。
pact.verifier.publishResults=true