Spring AOT Smoke Tests
A suite of tests for applications using AOT on the JVM and in GraalVM native images.
How to
Run a single test on JVM
./gradlew :<name of the smoke test>:jvmAotTest
for example
./gradlew :actuator-webmvc:jvmAotTest
Run a single test
./gradlew :<name of the smoke test>:build
for example
./gradlew :actuator-webmvc:build
Add a new sample
-
Create a new directory for your sample
-
Include the directory in
settings.gradle
-
Include the directory in
ci/smoke-tests.yaml
Test against local changes
Your project uses Gradle
./gradlew :<name of the smoke test>:build --include-build /path/to/your/project
Gradle will then substitute the dependency with your provided version.
Hint: You can use --include-build
multiple times.
Your project uses Maven or --include-build does not work
First, install the snapshots into your local Maven cache.
You can now consume those snapshots using -PfromMavenLocal
which takes a comma-separated list of group IDs:
./gradlew :rest-template:build -PfromMavenLocal=org.springframework,org.springframework.data
The preceding example will run the rest-template
smoke test, resolving Spring Framework and Spring Data modules from your local Maven cache.
Override a dependency version
As the test doesn’t use the Spring Dependency Management Plugin, you can’t use the ext['…'] = '…'
method.
Instead, use Gradle dependency constraints.
Say, for example, you want to update the version of Spring Session JDBC to 3.0.0-SNAPSHOT
:
dependencies {
// ...
constraints {
implementation('org.springframework.session:spring-session-jdbc:3.0.0-SNAPSHOT')
}
}
This works for direct and transitive dependencies.