繁体   English   中英

使用 liquibase 为 quarkus 原生测试填充数据库

[英]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

另外我想指出,我想为我拥有的每个配置文件( proddevtest )运行带有配置文件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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM