Édouard Lopez
02/06/2023, 4:10 PMjava.lang.IllegalArgumentException: Invalid pact broker host specified ('${pactbroker.host:}'). Please provide a valid host or specify the system property 'pactbroker.host'.
with the command
./gradlew testContract \
-Ppact.verifier.publishResults=true \
-Ppactbroker.url="<http://foo.bar>" \
--info
Édouard Lopez
02/06/2023, 4:49 PMpactbroker.url
using a system property gave the same result:
./gradlew testContract \
--info \
-Ppact.verifier.publishResults=$PACT_PUBLISH_VERIFICATION_RESULTS \
-Dpactbroker.url=$PACT_BROKER_URL
uglyog
pactbroker.host
Édouard Lopez
02/07/2023, 8:59 AM./gradlew testContract --info \
-Ppact.verifier.publishResults="true" \
-Dpactbroker.host="<http://our.broker.com|our.broker.com>"
or
-Dpactbroker.host="<http://our.broker.com>"
Édouard Lopez
02/07/2023, 9:01 AM@PactBroker()
class ProductControllerContractVerificationTest { … }
I would like my gradle
task to be as light as possible, e.g.:
val testContract = task<Test>("testContract") {
useJUnitPlatform()
group = "verification"
description = "Verify contracts published by consumers."
testClassesDirs = sourceSets["testContract"].output.classesDirs
classpath = sourceSets["testContract"].runtimeClasspath
outputs.upToDateWhen { false }
}
And my GitLab-CI call job's script
to be like
script:
- >
./gradlew testContract \
--info \
-Dpact.provider.branch="${GIT_CURRENT_BRANCH}" \
-Dpact.provider.version="${PACT_PROVIDER_APP_VERSION}" \
-Dpact.verifier.buildUrl="${PACT_CI_PIPELINE_URL}" \
-Dpactbroker.enablePending="${PACT_ENABLE_PENDING_CONTRACT}" \
-Dpactbroker.includeWipPactsSince="${PACT_INCLUDE_WIP_PACT_SINCE}" \
-Dpactbroker.url=$PACT_BROKER_URL \
-Ppact.verifier.publishResults="${PACT_PUBLISH_VERIFICATION_RESULTS}"
Édouard Lopez
02/07/2023, 1:13 PMpact.verifier.publishResults
to system property
val testContract = task<Test>("testContract") {
systemProperties = System.getProperties() as Map<String, Any>
systemProperty(
"pact.verifier.publishResults", System.getenv("PACT_PUBLISH_VERIFICATION_RESULTS")
?: properties.getOrDefault(
"pact.verifier.publishResults", "false"
) as String
)
…
}