gpt4 book ai didi

gradle - 提供者 pactVerify 没有获取 JSON Pact 文件

转载 作者:行者123 更新时间:2023-12-03 04:51:33 30 4
gpt4 key购买 nike

我在同一个仓库中有两个项目,具有完全独立的目录结构(/test-consumer 中的消费者,/app 中的提供者)。

消费者检查在 /test-consumer/build/pacts 中输出一个 JSON Pact 文件,正如预期的那样

dependencies { test { systemProperties['pact.rootDir'] = "$buildDir/pacts" } }

然后我将文件复制到 /app/build/pacts/ , 并把这个 systemProperties进入我的提供商的 build.gradle .

我抄袭的示例项目正在使用 Pact 代理,所以我想我可以把它拿出来,并用 rootDir 替换它。 ,但它不工作。这就是我得到的:

WARNING: There are no consumers to verify for provider 'Coffee Ordering Provider'



因此,它似乎正在查找 Pact 文件,但在其中任何一个中都找不到提供者+消费者对。

TL;博士:
我究竟做错了什么?


以下是一些可以提供帮助的代码位:
dependencies {
...
test { systemProperties['pact.rootDir'] = "$buildDir/pacts" }
}

pact {
serviceProviders {
'Coffee Ordering Provider' {
port = 8080

startProviderTask = startProvider
terminateProviderTask = stopProvider
stateChangeUrl = url('http://localhost:8080/pactStateChange')
}
}
}

最佳答案

您收到该警告是因为您没有告诉协议(protocol)插件在哪里可以找到协议(protocol)文件。对于目录中的契约,添加以下内容:

pact {
serviceProviders {
'Coffee Ordering Provider' {
port = 8080

startProviderTask = startProvider
terminateProviderTask = stopProvider
stateChangeUrl = url('http://localhost:8080/pactStateChange')

hasPactsWith('Coffee Ordering Consumers') {

// Will define a consumer for each pact file in the directory.
// Consumer name is read from contents of pact file
pactFileLocation = file("$buildDir/pacts")

}
}
}
}

请注意,您正在设置 pact.rootDir对于所有测试,但协议(protocol)验证不作为测试运行。

关于gradle - 提供者 pactVerify 没有获取 JSON Pact 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381910/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com