问题标签 [pact]

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 回答
74 浏览

pact - 在 Pact 代理浏览器中获取消息“dius/pact_broker docker image is deprecated”

我正在为我的 PAct 代理使用 PAct 代理 docker 映像和 Postgres docker 映像。直到上周它工作正常。今天我删除了包代理 docker 容器和图像,并从 dius/pact-broker 下载了它。之后,我开始在 HAL 浏览器中收到一条红色消息,例如“不推荐使用 dius/pact_broker docker 映像。请使用新的 dius/pact-broker 映像。” 在此处输入图像描述

Pact 经纪人有什么变化吗?

0 投票
1 回答
665 浏览

docker - 重新启动 docker 机器后,pact-broker docker 映像未运行

我在我的 docker 机器中使用 Postgres 图像和过去的代理图像来设置协议代理。以下是提到的 4 个步骤:

1.$ docker run --name pactbroker-db -e POSTGRES_PASSWORD=ThePostgresPassword -e POSTGRES_USER=admin -e PGDATA=/var/lib/postgresql/data/pgdata -v /var/lib/postgresql/data:/var/lib/postgresql/data -d postgres

2.$ docker run -it --link pactbroker-db:postgres --rm postgres sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U admin'

3 .

4. docker run --name pactbroker --link pactbroker-db:postgres -e PACT_BROKER_DATABASE_USERNAME=pactbrokeruser -e PACT_BROKER_DATABASE_PASSWORD=TheUserPassword -e PACT_BROKER_DATABASE_HOST=postgres -e PACT_BROKER_DATABASE_NAME=pactbroker -d -p 80:80 dius/pact_broker

当我在本地系统中打开 Hal 浏览器时运行此 4 命令后,它工作得很好。现在我正在停止 2 个 docker 容器 pactbroker-db 和 pactbroker 并停止 docker 机器。

一段时间后,我正在重新启动 docker 机器并通过以下方式启动容器

$docker start pactbroker-db$docker start pactbroker。容器正在启动,但打开 HAL 浏览器时出现错误“我们很抱歉,但出了点问题。” 附上截图。我第二次启动 docker 时有什么问题吗?在此处输入图像描述

0 投票
1 回答
276 浏览

postgresql - 非dockerized postgresql的pactbroker docker镜像连接问题

我正在使用存在于

相同的图像出现在

我没有使用 postgresql 的 docker 映像。我有自己的 Postgres 服务器托管在

172.15.16.23 (local ip), port 5432 , admin usaer as pactbrokeruser and password as 'password' and db name is pactbroker-db.

我将文档中给出的环境变量设置为

  • PACT_BROKER_DATABASE_ADAPTER = postgres
  • PACT_BROKER_DATABASE_USERNAME = pactbrokeruser
  • PACT_BROKER_DATABASE_PASSWORD = 密码
  • PACT_BROKER_DATABASE_HOST = 172.15.16.23
  • PACT_BROKER_DATABASE_NAME = pactbroker-db

我正在使用 docker run 命令作为

但仍然没有发生连接。在 docker 日志中,我收到错误“连接尚未建立”,请您帮我编写将 dockerized pact-broker 连接到非 dockerized postgresql 的正确命令。---------------------------------------来自Beth的评论后--------我按照你的建议试过了。BUt 环境变量工作正常。我尝试编辑 Git 项目https://github.com/DiUS/pact_broker-docker中给出的 docker compose 文件 ,如下所示

版本:'2'

服务:

broker_app:图像:dius/pact-broker 端口:-“80:80”环境:PACT_BROKER_DATABASE_USERNAME:postgres PACT_BROKER_DATABASE_PASSWORD:Welcome123 PACT_BROKER_DATABASE_HOST:10.0.0.204 PACT_BROKER_DATABASE_NAME:postgres

当我在外部使用它时,我已经删除了数据库图像下载部分。我在图像中提供了我的外部 Postgres 数据库详细信息,在此处输入图像描述

因此,作为主机,我提供了服务器的 ip,是否正确?

0 投票
1 回答
120 浏览

javascript - 在浏览器中使用 JS Pact 时,如何创建 pact 文件?

我正在使用 JS pact 库 (github.com/pact-foundation/pact-js) 来测试聚合物应用程序。我需要在应用程序中测试ajax代码,我想在浏览器中测试它。

我现在在我的 github 存储库https://github.com/phil-rice/HelloPolymer中完成了所有这些工作(我现在确实需要手动解除和拆除协议代理)

我现在想制作契约文件。而且...这很有趣,因为测试是在浏览器中运行的。根据 //github.com/pact-foundation/pact-node#create-pact-mock-server ,正常的方法似乎是将信息传递给 Pact()

但是,此代码在浏览器上运行。浏览器不允许我访问文件!

我应该如何创建我的协议文件?

谢谢!

0 投票
1 回答
1260 浏览

pact - pact- 合同测试- PACT 文件没有被拾取执行

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

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

有人可以帮我解决这个问题。

提前致谢

苏什玛

0 投票
1 回答
3131 浏览

c# - C# PACT - 消费者驱动的接触测试 - 为提供者编写测试

我正在努力了解PACT,我正在使用PACT-Net库来实现这一点。

我对消费者的测试工作正常,但我正在尝试在提供者上设置测试。我正在使用在 Visual Studio 中使用 Web API 模板时加载的基本 Web API 项目——它创建了 Values API 控制器。我只是在测试 GetIEumerable<string>方法作为流程的端到端测试。我也在关注 PACT-Net github 站点上的示例。这是我到目前为止的测试:

每当我运行单元测试时,都会出现以下错误:

我想我的问题是,我是否需要实际测试对 /api/values 的 HTTP 调用,还是我遗漏了其他东西?

谢谢

0 投票
1 回答
324 浏览

pact - pact-jvm-provider-maven_2.11 不适用于 Java7

pact-jvm-provider-maven_2.11 适用于 Java8,但不适用于 Java7。收到以下错误

[错误] 无法在项目 product-xapi-service 上执行目标 au.com.dius:pact-jvm-provider-maven_2.11:3.5.0:verify (default-cli):执行目标 au.com 的默认 cli .dius:pact-jvm-provider-maven_2.11:3.5.0:verify failed: 无法在插件 'au.com.dius:pact-jvm-provider-maven_2.11:3.5 中加载 mojo 'verify'。 0' 由于 API 不兼容:org.codehaus.plexus.component.repository.exception.ComponentLookupException:au/com/dius/pact/provider/maven/PactProviderMojo:不支持的 major.minor 版本 52.0

我也没有看到提到 Java 8 的要求。它是否完全支持 Java 7?

0 投票
2 回答
2041 浏览

microservices - 协议验证不起作用 - 消息提供程序测试期间未找到带注释的方法

我有一个项目,我们正在使用消息提供程序,因为它涉及基于 Apache kafka 的消息传递。

消费者方面的 maven 目标在本地和 Jenkins 都运行良好。

提供方的协议验证在 Jenkins 中失败,说“没有为交互找到带注释的方法”。

我的 POM.xml 配置如下:

0 投票
1 回答
5160 浏览

pact - PACT - 使用提供者状态

我正在尝试使用 pact 来验证 Spring Boot 微服务。我已经从消费者生成了协议文件,并使用协议代理在提供者端对其进行了验证。

我有另一个用例,我需要在根据实际服务响应验证协议文件之前执行一些代码。我阅读了有关状态更改 URL 和状态更改的内容以实现它,但无法获得如何实现此目的的示例。有人可以帮忙吗?

我的具体情况是:我创建了一个合同来更新 id 为 1234 的客户(名字:测试姓氏:用户)。

如果这个客户不存在,那么我需要通过从协议文件中的更新请求中读取名字、姓氏、id 以及通过状态更改代码的附加信息(城市、州、电话号码)来将此数据插入数据库。

所以我的问题是,我可以通过状态更改从 pact 文件中读取请求数据,而不是在验证端配置名字、姓氏和 id 吗?

0 投票
1 回答
538 浏览

java - Pact:没有找到响应类型的 HttpMessageConverter

所以我有两个 Spring Boot 项目。在项目 AI 中,通过服务类调用项目 B 的控制器以检索包含字符串列表的 ResponseEntity。项目 A 的服务类是消费者,B 是 Pact 术语中的提供者:

BookServiceInterfaceImpl.java

BookController.java

我正在尝试使用 Pact 在两者之间创建合同。到目前为止,我在消费者中进行了以下测试:

BookServiceTest.java

消费者的 pom 文件是:

pom.xml

当我运行它时,我得到以下信息:

所以我并不是问题所在,据我所知,我很确定这种转换不应该是一件大事,应该由 Spring 处理。关于 REST 调用或测试(第一次使用 Pact),我是否做错了什么?我是否缺少我假设 Spring Boot 父/依赖项会具有的 pom 中的依赖项?