-
Notifications
You must be signed in to change notification settings - Fork 41.5k
Closed
Description
I have created a Github repo that can be used to reproduce the error: https://github.com/magnus-larsson/sb31-nativetest-demo.
The sample code contains a test that uses the new support for testcontainers together with Postgresql.
Running tests that use testcontainers for Postgresql works fine:
./gradlew clean test
Building a jar file and a native image and running them with a Postregsql db in Docker also works fine:
docker-compose up -d
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost/bp
export SPRING_DATASOURCE_USERNAME=bp
export SPRING_DATASOURCE_PASSWORD=bp
./gradlew build
java -jar build/libs/tcdemo-0.0.1-SNAPSHOT.jar
curl localhost:8080/customers
CTRL/C
./gradlew nativeBuild
java -jar build/libs/tcdemo-0.0.1-SNAPSHOT.jar
curl localhost:8080/customers
CTRL/C
docker-compose down
But, when running native tests, they fail:
./gradlew clean nativeTest
Error message:
Failures (1):
JUnit Jupiter:TcdemoApplicationTests
ClassSource [className = 'com.example.tcdemo.TcdemoApplicationTests', filePosition = null]
=> java.lang.ExceptionInInitializerError
org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:113)
org.junit.jupiter.engine.execution.ExtensionValuesStore.lambda$getOrComputeIfAbsent$4(ExtensionValuesStore.java:86)
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier.computeValue(ExtensionValuesStore.java:223)
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier.get(ExtensionValuesStore.java:211)
org.junit.jupiter.engine.execution.ExtensionValuesStore$StoredValue.evaluate(ExtensionValuesStore.java:191)
[...]
Suppressed: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.test.context.BootstrapUtils
org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:113)
org.junit.jupiter.engine.execution.ExtensionValuesStore.lambda$getOrComputeIfAbsent$4(ExtensionValuesStore.java:86)
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier.computeValue(ExtensionValuesStore.java:223)
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier.get(ExtensionValuesStore.java:211)
org.junit.jupiter.engine.execution.ExtensionValuesStore$StoredValue.evaluate(ExtensionValuesStore.java:191)
[...]
Caused by: java.lang.IllegalStateException: Failed to load class for @org.springframework.test.context.web.WebAppConfiguration
org.springframework.test.context.BootstrapUtils.loadWebAppConfigurationClass(BootstrapUtils.java:213)
org.springframework.test.context.BootstrapUtils.<clinit>(BootstrapUtils.java:63)
[...]
Caused by: java.lang.ClassNotFoundException: org.springframework.test.context.web.WebAppConfiguration
java.base@17.0.6/java.lang.Class.forName(DynamicHub.java:1132)
org.springframework.util.ClassUtils.forName(ClassUtils.java:284)
org.springframework.test.context.BootstrapUtils.loadWebAppConfigurationClass(BootstrapUtils.java:209)
[...]
Metadata
Metadata
Assignees
Labels
type: bugA general bugA general bug