契约验证未将结果发布给契约经纪人

问题描述 投票:0回答:2

我成功地将 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')
java maven maven-plugin pact pact-broker
2个回答
0
投票

我尝试通过多种方式更改此系统属性

pact.verifier.publishResults
。我尝试用这个
mvn pact:verify -Dpact.verifier.publishResults='true'
运行我的验证命令,我也尝试在 maven-surefire-plugin 中设置它,但仍然没有任何效果。

最后,这对我有用,在我的

pact.provider
插件中,我添加了一个单独的配置块,而不是我在其中设置契约代理参数的配置块 该配置块如下所示:

<configuration>                        
   <pact.verifier.publishResults>true</pact.verifier.publishResults>
</configuration>

0
投票

我在尝试 verifyPact 时遇到了类似的问题,它没有在经纪人上发布已验证。

如果您使用像 IntelliJ IDEA 这样的 IDE,当您执行 verifyPact 任务时,您需要在环境变量中设置以下内容。

pact.verifier.publishResults=true
© www.soinside.com 2019 - 2024. All rights reserved.