问题标签 [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.
unit-testing - 如何仅将 pact-jvm 提供程序与 json 文件集成
我想使用提供的 pact json 文件来测试我的 spring-boot Rest API。事情是互联网上的所有资源都指向使用契约经纪人进行验证。我会到达那里,但目前,为此开发 POC 非常困难。
无论 pom 配置如何,它都会尝试连接到 localhost。
这是我的 pom.xml
请注意,json 实际位于提供的路径上/Usr/Pact-JVM-Example/pacts/
。另外,我故意删除pactBrokerUrl
,因为我不打算连接到远程协议 json。
/Usr/Pact-JVM-Example/pacts/
最后,我希望测试在运行时基于 json 文件通过/失败./mvnw pact:verify
pact-broker - 上传到契约经纪人的契约文件缺少某些细节
我有一个用 Junit5 编写的契约消费者测试。
它会生成一个像这样的协议文件
但是当使用我推送到协议代理时,我在协议代理中mvn pact:publish
只看到了其中的一部分。
我在 pactbroker 上看到的 pact 文件中的 mySettings 数组完全为空。这里可能是什么问题?
pact-broker - swagger-mock-validator 和 pactflow.io
我试图在使用 swagger-mock-validator 工具时指定一个托管在 pactflow.io 上的提供程序,但我无法进行身份验证,因为该工具只有 user:password 作为身份验证,而 pactflow.io 使用 API 令牌。知道我怎样才能完成这项工作吗?
pact - PACT 节点 - ConsumerVersionSelector - 参与者和版本未兑现
- 操作系统:Mac OSX 10.15.7_
- 契约:9.15.5
- 契约节点版本:10.12.2
- 节点版本:12.13.0
我确定我做错了什么,但我不知道如何让它工作。
我有 2 个客户 (ClientA
和ClientB
) 与 provider 有合同(每个都标记为“master”)发布到协议代理(版本 2.79.1)DemoService
。
契约经纪人矩阵(简化):
消费者 | 版本 | 标签 | 提供者 | 版本 | 已验证 | |
---|---|---|---|---|---|---|
客户A | 1.0.1-2726fe4 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 | |
客户A | 1.0.0-12ab763 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 | |
客户B | 1.0.1-6fe3cb5 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 | |
客户B | 1.0.0-ec71b62 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 |
我尝试设置一个来验证与提供商ConsumerVersionSelector
签订的合同的特定版本。ClientA
它看起来像version
并pacticipant
没有兑现。两个消费者的合同都是从契约经纪人那里提取的。日志有以下语句:
谢谢你的评论。
pact-broker - 如何为自托管的契约代理创建 webhook?
我已经成功设置了一个契约代理,但我不确定应该在此处添加什么以将 webhook 集成到现有的 Gitlab CI 中?
非常感谢任何有关如何设置它的想法。谢谢!
webhooks - 即使合同没有更改,也会触发合同内容更改
我已经使用 docker image dius/pact-broker:2.40.0-1 设置了协议代理,我的参与者被标记为“master”并由提交 SHA 进行版本控制。在代理上建立 Webhook '合同内容已更改'。即使没有更改协议,该事件也会在每个 jenkins 构建时触发。消费者詹金斯文件:
消费者 Maven 插件:
没有添加标签时不会发生。我该如何解决?先感谢您
postgresql - 如何将 Pact Broker 连接到 PostgreSQL 的本地或云实例?
我正在努力让 Pact Broker 在 docker 容器中运行以连接到我在 Windows 上安装的本地 PostgreSQL。
这就是我的 docker run 命令的样子...
返回以下错误...
这是我在 pgAdmin 4 中的数据库和用户
这是我用来测试连接的命令
它返回以下...
我也尝试过运行以下返回相同错误的命令
我的postgres.conf
文件包含listen_addresses = '*'
并且我pg_hba.conf
的包含以下内容
我在使用 Azure Database for PostgreSQL 托管的实例时遇到了类似问题
我的连接字符串如下所示...
我试图通过本地协议代理连接到...
它返回完全相同的错误。
这里可能有什么问题?
versioning - 协议的向后兼容性
如何针对所有不同的消费者版本验证协议。每当我尝试测试协议时,它只会验证最新的协议。有没有办法验证旧的消费者版本。
我还尝试了 ConsumerVersionSelector 选项。但是生产版本似乎没有经过验证
任何帮助,将不胜感激!
node.js - pact.io:为提供者测试选择特定端点
我们正在运行一个微服务架构,并希望在我们的项目中设置合约测试。我们的消费者不知道哪个请求由哪个微服务处理。我们希望我们的微服务从他们应该参与的契约中选择交互。
例子:
- 消费者 A 编写了一个正在测试的测试
POST /users
。 POST /users
消费者 A使用不同的参数编写第二个测试。- 消费者 A 为
GET /users/$userId
. - 消费者 A 为
GET /articles/$articleId
. - 微服务 A 处理所有
POST /users
请求。 - 微服务 B 处理所有
GET /users/$userId
请求。 - 微服务 C 处理所有
GET /articles/$articleId
请求。 - 所有的消费者测试在他们的交互中只有一个请求。
我们希望将提供者测试放在微服务旁边。每个微服务应该只测试它能够处理的端点。在这种情况下,微服务 A 将测试所有POST /users
合约。微服务 B 会选择GET /users/$userId
合约等等。
有没有办法使用 pactflow.io 和 nodejs 绑定 pact ?
pact - 使用 pact maven 为消费者运行特定的提供者测试
我有一个网络挂钩 Jenkins 作业,当消费者发布协议时会触发该作业。但现在它为所有消费者运行所有提供者测试。当消费者发布协议时,我想运行我为消费者编写的特定提供者测试。我知道过滤器,即 -Dpact.filter.consumers 和 -Dpact.filter.pacturl 但即使我在运行以执行测试的 mvn 命令中添加它们,它仍然运行所有提供程序测试。任何帮助,将不胜感激。
我对消费者的所有提供者测试都有类名,如 *ProviderTest。
Maven命令: