问题描述
- 操作系统:Mac OSX 10.15.7_
- 契约:9.15.5
- Pact Node 版本:10.12.2
- 节点版本:12.13.0
我确定我做错了什么,但我不确定如何让它发挥作用。
我有 2 个客户端(ClientA
和 ClientB
),它们的合同(每个都标记为“master”)发布到与提供者 DemoService
的契约经纪人(版本 2.79.1)。
Pact-broker 矩阵(简化):
消费者 | 版本 | 标签 | 提供者 | 版本 | 已验证 | |
---|---|---|---|---|---|---|
客户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
合同的特定版本。
import { Verifier} from "@pact-foundation/pact";
import { ConsumerVersionSelector } from "@pact-foundation/pact-node/src/verifier";
describe("PACT Verification",() => {
test(`Validates the expectations of Provider: DemoService`,() => {
return new Verifier({
providerBaseUrl: `http://${config.app_server_host}:${config.app_port}/`,pactbrokerUrl: 'https://local/pactbroker/',provider: 'DemoService',providerVersion: '1.0.0-a6b2678',providerVersionTags: 'master',logLevel: 'debug',logDir: 'log',consumerVersionSelectors: [{
all: false,latest: false,tag: 'master',version: '1.0.0-2726fe4',pacticipant: 'ClientA'
} as ConsumerVersionSelector],publishVerificationResult: true,pactbrokerUsername: 'admin',pactbrokerPassword: 'password',})
.verifyProvider()
.then((output) => {
console.log(output);
})
.then(() => {
expect("A").toEqual("A");
});
});
});
看起来 version
和 pacticipant
不受尊重。两个消费者的合同都是从契约经纪人那里提取的。日志中有如下语句:
DEBUG: The pact at https://local/pactbroker/pacts/provider/DemoService/consumer/ClientA/pact-version/1d59c1e8b3944bb34c72cafd0de47e0b07162685 is being verified because it matches the following configured selection criterion: pacts for all consumer versions tagged 'master'
DEBUG: The pact at https://local/pactbroker/pacts/provider/DemoService/consumer/ClientB/pact-version/0713c326c33c47a08901c676c575244bfefd394a is being verified because it matches the following configured selection criterion: pacts for all consumer versions tagged 'master'
感谢您的评论。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)