Для контрактных тестов микросервисов я использую 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'
}
}
}
Хотя я могу публиковать файлы пактов в брокере и видеть графики зависимостей,«Last Verified» отображается пустым после запуска метода pactVerify.Я увидел некоторую документацию вокруг pact.verifier.publishResults = true и попытался передать ее как параметр gradle, но получил сообщение об ошибке:
FAILURE: сборка завершилась с исключением.
- Что пошло не так: ваш проект неверно сконфигурирован, в сборке ожидалась конфигурация "pact", но вместо этого он получил String со значением ''.Убедитесь, что нет свойства, которое переопределяет 'pact'.
команда gradle, которую я запускаю:
./gradlew test pactPublish
./gradlew pactVerify -Ppact.verifier.publishResults=true
Пожалуйста, дайте мне знать, что я пропустил, пакт.verifyier.publishResults не принимается