@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @ImportAutoConfiguration @AutoConfigureMessageVerifier @PropertyMapping(value="stubrunner", skip=ON_DEFAULT_VALUE) public @interface AutoConfigureStubRunner
Modifier and Type | Optional Element and Description |
---|---|
String |
classifier
The classifier to use by default in ivy co-ordinates for a stub.
|
String |
consumerName
You can override the default
spring.application.name of this field by
setting a value to this parameter. |
boolean |
deleteStubsAfterTest
If set to
false will NOT delete stubs from a temporary
folder after running tests |
Class<? extends HttpServerStubConfigurer> |
httpServerStubConfigurer
Configuration for an HTTP server stub
|
String[] |
ids
The ids of the stubs to run in "ivy" notation
([groupId]:artifactId[:version][:classifier][:port]).
|
String |
mappingsOutputFolder
For debugging purposes you can output the registered mappings to a given folder.
|
int |
maxPort
Max value of a port for the automatically started WireMock server
|
int |
minPort
Min value of a port for the automatically started WireMock server
|
String[] |
properties
Properties in form key=value
|
String |
repositoryRoot
The repository root to use (where the stubs should be downloaded from)
|
StubRunnerProperties.StubsMode |
stubsMode
The way stubs should be found and registered.
|
boolean |
stubsPerConsumer
On the producer side the consumers can have a folder that contains contracts
related only to them.
|
public abstract int minPort
public abstract int maxPort
public abstract String repositoryRoot
public abstract String[] ids
groupId
,
version
, classifier
and port
can be optional.public abstract String classifier
public abstract boolean stubsPerConsumer
true
we no longer register all
stubs but only those that correspond to the consumer application's name. In other
words we'll scan the path of every stub and if it contains the name of the consumer
in the path only then will it get registered.
Let's look at this example. Let's assume that we have a producer called foo
and two consumers baz
and bar
. On the foo
producer side the
contracts would look like this
src/test/resources/contracts/baz-service/some/contracts/...
and
src/test/resources/contracts/bar-service/some/contracts/...
.
Then when the consumer with spring.application.name
or the
consumerName()
annotation parameter set to
baz-service
will define the test setup as follows
@AutoConfigureStubRunner(ids = "com.example:foo:+:stubs:8095", stubsPerConsumer=true)
then only the stubs registered under
src/test/resources/contracts/baz-service/some/contracts/...
will get
registered and those under
src/test/resources/contracts/bar-service/some/contracts/...
will get
ignored.public abstract StubRunnerProperties.StubsMode stubsMode
StubRunnerProperties.StubsMode.CLASSPATH
.public abstract String[] properties
public abstract boolean deleteStubsAfterTest
false
will NOT delete stubs from a temporary
folder after running testspublic abstract Class<? extends HttpServerStubConfigurer> httpServerStubConfigurer
Copyright © 2016–2019 Spring. All rights reserved.