【问题标题】:Unable to publish the 'Last Verified' status in PACT Broker无法在 PACT Broker 中发布“上次验证”状态
【发布时间】:2018-09-21 11:24:15
【问题描述】:

对于微服务合同测试,我正在使用 PACT 和 gradle 4.4,这是我的 build.gradle:

buildscript {
  repositories {
    mavenCentral()
 }
 dependencies {
     classpath 'au.com.dius:pact-jvm-provider-gradle_2.12:3.5.22'
  }
}

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: "au.com.dius.pact"


pact {

 serviceProviders {

    // You can define as many as you need, but each must have a unique name
    UserService {

        // All the provider properties are optional, and have sensible defaults (shown below)
        protocol = 'http'
        host = 'localhost'
        port = 8111
        project.version = "2.0.1"
        hasPactsFromPactBroker('http://10.100.198.200:8113')

        }
}            
  pact {
  publish {
  version = "2.0.1"
  pactDirectory = 'pacts' // defaults to $buildDir/pacts
        pactBrokerUrl = 'http://10.100.198.200:8113'

 }
 }
}

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

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

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

我运行的 gradle 命令是:

      ./gradlew test pactPublish 
      ./gradlew pactVerify -Ppact.verifier.publishResults=true

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

【问题讨论】:

    标签: gradle pact pact-jvm pact-broker


    【解决方案1】:

    首先是您的 Gradle 配置无效。应该只有一个 pact 块。你有两个。删除带有publish 块的内部块(但保留publish 块:-D)。

    如果这不能解决您的问题,请查看 https://github.com/DiUS/pact-jvm/issues/738 并查看 cmets 的任何更改是否有帮助。

    【讨论】:

    • 谢谢罗纳德。 build.gradle 是问题所在。我已将其更改为一个协议块,现在结果已发布给经纪人!感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 2021-07-22
    相关资源
    最近更新 更多