问题标签 [pact-broker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1920 浏览

java - 如果 junit 5 测试失败,Pact 不会将提供者验证结果发送给 Pact 代理

我用spring创建了一个REST服务。现在我想使用 pact 和 junit 5 来​​测试消费者-提供者-通信。我已经有一个正在运行的 pact-broker(来自https://github.com/jaimeniswonger/pact-broker-openshift)。消费者测试工作正常并发布协议。provider-test 加载这些并尝试验证它们。但测试只有在验证成功的情况下才会上传结果。我尝试使用surefire和failsafe运行测试。

测试代码:

协议代理属性在 pom 中定义:

是否可以配置测试以通知协议代理验证失败?

0 投票
1 回答
3244 浏览

junit5 - 协议提供者测试中断:pactVerificationTestTemplate » PreconditionViolation

我对 CDC 测试还很陌生,只是迈出了第一步。我已经部署了 Pact-Broker (docker-compose),在 localhost:80 运行。消费者成功将生成的契约发送给代理,但提供者似乎无法获得有效的契约(但这只是假设)。

我正在使用 spring-boot、maven、jUnit5。应用程序测试在 Ubuntu 上运行。 在本地目录中使用 PactFolder 和消费者生成的契约合同会导致成功的测试。

当我切换到 @PactBroker 注释时,提供者能够连接到代理并收到以下响应(我从调试日志中得到它):

并且测试运行结果如下:

由于使用本地 pact 文件会使测试变绿,我想原因不在我的测试类的代码中,但如果它可能有帮助,我在这里提供它:

由于不能选择使用本地 pact 文件,我真的很想知道如何修复错误,并将感谢任何有用的评论

maven 协议依赖项:

用于发布消费者协议的 Maven 插件:

契约提供者 docker-compose.yml:

0 投票
1 回答
923 浏览

gradle - 无法在 PACT Broker 中发布“上次验证”状态

对于微服务合同测试,我将 PACT 与 gradle 4.4 一起使用,这是我的 build.gradle:

虽然能够在代理中发布协议文件并能够查看依赖关系图,但在运行 pactVerify 方法后,“上次验证”显示为空白。我看到了一些关于 'pact.verifier.publishResults=true' 的文档,并试图作为 gradle 参数传递,但我收到一条错误消息:

FAILURE:构建失败并出现异常。

  • 出了什么问题:您的项目配置错误,在构建中期望一个“协议”配置,但得到一个值为 '' 的字符串。确保没有覆盖“pact”的属性。

我运行的 gradle 命令是:

请让我知道我错过了什么,不接受 pact.verifier.publishResults

0 投票
2 回答
40 浏览

java - 提供程序中 PactVerify 每次迭代中数据的持久性

当提供者的端点执行数据持久性时,执行合同测试的最佳方法是什么?

例如,客户的注册。我应该考虑回滚管道中的数据吗?

0 投票
1 回答
873 浏览

.net - 验证提供商端时无法从 dotnet 核心中的 Pact Brocker 获取 PACT

我已经在 C# dotnet core 的消费者端实现了 PACT,并且能够使用以下代码将 *.json pact 文件发布到 PactBrocker。

在提供者方面(再次在 C# dotnet core 中),当我尝试使用单元测试用例(参见下面的代码)验证相同的已发布 Pact 时:

运行该单元测试时出现以下错误。

PactNet.PactFailureException :协议验证失败。有关详细信息,请参阅输出。如果输出为空,请为您的测试框架提供自定义 config.Outputters (IOutput),因为我们无法写入控制台。在 C:\projects\pact-net\PactNet\Core\PactCoreHost.cs:line 139 中的 PactNet.Core.PactCoreHost`1.Start()

在 C:\POC\pact2\Event.Api\Event.Test\EventAPITests.cs:line 55 中的 Event.Test.EventApiTests.EnsureEventApiHonoursPactWithConsumer()

从http://domain.pact.dius.com.au/pacts/provider/Event.API/consumer/UserService.API/version/1.0.2读取文件时出错

由于目标机器主动拒绝,无法建立连接。- 连接(2)“domain.pact.dius.com.au”端口 80 C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/ lib/ruby/2.2.0/net/http.rb:879:in `initialize'

C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `open '

C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:in `block在连接'

C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `timeout'

C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:in `connect '

C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:in`do_start '

C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:852:in`start '

有人可以帮忙解决这个错误吗?PACT 代理服务器不在我的控制范围内。我是从http://pact.dius.com.au/网站获得的。

0 投票
1 回答
1095 浏览

pact-broker - 如何创建可以由协议代理中的 Provider_verification_published 事件触发的有效 webhook?

为了通过利用 pact broker webhook 自动化合同测试,我使用 jenkins 作业创建了自定义的 contract_content_changed 事件。但是当我尝试为验证结果发布触发的客户管道添加 webhook 时,它失败了几次。

删除body元素后,它创建成功。通过将主体传递给客户作业,它可以解析失败/通过并决定是否应该进行部署。

如果不允许使用正文,消费者管道如何获取结果并继续下一步(或停止部署)?

我指的是Pact Broker Webhooks

0 投票
1 回答
608 浏览

pact - 如何运行 PACT Broker can-i-deploy 脚本?

我已经下载了 zip 文件https://github.com/pact-foundation/pact_broker-client#can-i-deploy 并在我的 bash 中运行以下命令但我收到错误,我做错了什么

我的计划是从 C# 代码运行这个 can-i-deploy 但在此之前我正在运行 curl 但面临问题,感谢 在此处输入图像描述 示例脚本的任何帮助:

错误:卷曲:选项--参与者:未知

0 投票
1 回答
376 浏览

powershell - Start-Process:系统找不到从 TeamCity Build 步骤指定的文件,但在本地工作正常

我正在尝试运行 Pact 代理,我可以使用在本地运行良好的参数部署工具,但是当我在 TeamCity 中添加构建步骤时,它会抛出以下错误

Start-Process :此命令无法运行,因为错误:系统找不到指定的文件。 在此处输入图像描述

当我在本地运行相同的 powershell 脚本时,它工作正常。

PowerShell脚本: 在此处输入图像描述

CanIDeploy.bat 代码是 在此处输入图像描述

注意:我从 power shell 脚本调用 pact-broker.bat 的原因是,无法从 Teamcity 运行 bat 文件,这就是创建内部调用 pact broker bat 文件的 powershell 脚本的原因。任何帮助表示赞赏

0 投票
1 回答
293 浏览

pact - 契约经纪人:无法在 http://localhost:8080/ 中看到契约经纪人屏幕

我是新来的契约。按照说明https://github.com/DiUS/pact_broker-docker/blob/master/POSTGRESQL.md在 dockerized 环境中设置 pact-broker。容器启动并运行。在此处输入图像描述

在浏览器中,我可以看到 postgres 在http://localhost:8080/上监听

在此处输入图像描述

但我无法看到以下 pact-broker 屏幕来发布/验证合同文件。有人请帮忙。我在这里错过了什么吗?

在此处输入图像描述

提前致谢。

0 投票
1 回答
171 浏览

pact - 用于契约代理的 PSQL 以外的数据库

我们可以使用 SQL Server 作为契约代理的数据库吗?我在任何地方都看不到任何与此相关的文档。问题是我的工作场所没有 PostgreSQL,我被要求评估 SQL 服务器是否能达到目的。请帮忙