-
-
Notifications
You must be signed in to change notification settings - Fork 484
Open
Labels
questionIndicates that an issue, pull request, or discussion needs more informationIndicates that an issue, pull request, or discussion needs more information
Description
How is the plugin supposed to be used with the Gradle Kotlin DSL?
I kind of got this working by declaring
plugins {
...
id("au.com.dius.pact") version "4.5.8"
}
...
pact {
serviceProviders {
create("UsersProvider") {
protocol = "https"
host = "localhost"
port = 443
path = ""
hasPactWith("UsersConsumer", closureOf<GradleConsumerInfo> {
pactSource = project.layout.buildDirectory.dir("pacts").get().file("UsersConsumer-UsersProvider.json").asFile.toURI().toURL()
} as Closure<GradleConsumerInfo>)
}
}
}
and executing gradle pactVerify:
> Task :pactVerify_UsersProvider
Execution optimizations have been disabled for task ':pactVerify_UsersProvider' to ensure correctness due to the following reasons:
- In plugin 'au.com.dius.pact' type 'au.com.dius.pact.provider.gradle.PactVerificationTask' property 'testClasspathURL' has @Input annotation used on type 'java.net.URL' or a property of this type. Reason: Type 'java.net.URL' is not supported on properties annotated with @Input because Java Serialization can be inconsistent for this type. For more information, please refer to https://docs.gradle.org/8.3/userguide/validation_problems.html#unsupported_value_type in the Gradle documentation.
Verifying a pact between UsersConsumer and UsersProvider
[from URL file:/home/user/project/build/pacts/UsersConsumer-UsersProvider.json]
Given get-user-by-id-state
WARNING: State Change ignored as there is no stateChange URL
GET /v1/users/alice
returns a response which
has status code 200 (OK)
has a matching body (OK)
NOTE: Skipping publishing of verification results as it has been disabled (pact.verifier.publishResults is not 'true')
Execution optimizations have been disabled for 1 invalid unit(s) of work during this build to ensure correctness.
Please consult deprecation warnings for more details.
BUILD SUCCESSFUL in 2s
But with problems:
- From above: What does
WARNING: State Change ignored as there is no stateChange URLmean? I don't get this warning when executing the same verification via Junit 5. - From above: Type 'java.net.URL' is not supported on properties annotated with @input because Java Serialization can be inconsistent for this type.
- Second parameter for
hasPactWithis a Groovy closure; this doesn't work well with the Kotlin DSL, requires an unchecked cast. pactSourceneeds to be of typeURL, this has been reported before. But why do I need to configurepactSourcein the first place? The task could just look up all files underbuild/pactsand run verification on them.
Metadata
Metadata
Assignees
Labels
questionIndicates that an issue, pull request, or discussion needs more informationIndicates that an issue, pull request, or discussion needs more information