[英]Populate database for quarkus native tests using liquibase
我想使用 liquibase 为 quarkus 中的本机测试填充一些数据。 目前我有三个配置文件: prod
dev
test
。 JVM 测试成功,但在构建本机应用程序时本机测试失败(例如,使用-Dquarkus.profile=dev -Dquarkus.test.native-image-profile=test
):
...
Caused by: org.postgresql.util.PSQLException: ERROR: relation "qrtz_locks" does not exist
...
Caused by: org.postgresql.util.PSQLException: ERROR: relation "qrtz_triggers" does not exist
另外我想指出,我想为我拥有的每个配置文件( prod
、 dev
、 test
)运行带有配置文件test
的本机测试。 我用来运行本机测试的命令:
./gradlew clean build testNative -Dquarkus.package.type=native -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:20.3.0-java11 -Dquarkus.profile=<profile> -Dquarkus.test.native-image-profile=test
build.gradle
:
...
implementation 'io.quarkus:quarkus-quartz'
implementation 'org.liquibase:liquibase-core'
...
testImplementation 'io.quarkus:quarkus-liquibase'
testImplementation 'org.testcontainers:testcontainers'
testImplementation 'org.testcontainers:postgresql'
...
application.properties
:
quarkus.datasource.db-kind=postgresql
application-dev.properties
:
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/db
quarkus.datasource.username=db
quarkus.datasource.password=db
application-test.properties
:
quarkus.liquibase.migrate-at-start=true
quarkus.liquibase.change-log=<path-to-changelog>
对于 JVM 测试,liquibase 使用石英表在测试容器中填充数据库,但对于本机测试,它不会。
如果没有testNative
,应用程序将构建为本机并且运行良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.