如何将默认使用Testcontainers的jHipster 7.9恢复至旧测试机制?
切换jHipster 7.9集成测试至传统运行机制
可以通过以下步骤切换回jHipster此前使用的集成测试运行机制(基于嵌入式数据库或直接连接测试数据库,替代Testcontainers):
1. 移除Testcontainers相关依赖与构建配置
Maven 项目
编辑项目根目录下的pom.xml:
- 删除或注释所有Testcontainers相关依赖:
<!-- 删除Testcontainers核心依赖 --> <dependency> <groupId>org.testcontainers</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <!-- 删除对应数据库的Testcontainers依赖,例如PostgreSQL --> <dependency> <groupId>org.testcontainers</groupId> <artifactId>postgresql</artifactId> <scope>test</scope> </dependency>
- 若存在Testcontainers Maven插件,同样删除或注释:
<plugin> <groupId>org.testcontainers</groupId> <artifactId>testcontainers-maven-plugin</artifactId> <version>...</version> </plugin>
Gradle 项目
编辑项目根目录下的build.gradle:
- 删除Testcontainers相关依赖声明:
// 删除Testcontainers核心依赖 testImplementation 'org.testcontainers:junit-jupiter' // 删除对应数据库的Testcontainers依赖 testImplementation 'org.testcontainers:postgresql'
- 移除任何与Testcontainers相关的插件配置。
2. 调整测试类与配置文件
- 移除所有测试类上的
@Testcontainers注解,删除类中容器实例的定义(例如@Container注解的数据库容器对象)。 - 修改测试环境配置文件(
src/test/resources/application.yml或application.properties),切换为嵌入式数据库(如H2)或测试环境数据库:
以H2嵌入式数据库为例,application.yml配置如下:
spring: datasource: url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 driverClassName: org.h2.Driver username: sa password: "" jpa: database-platform: org.hibernate.dialect.H2Dialect hibernate: ddl-auto: create-drop
3. 更新Bitbucket Pipeline配置
移除Pipeline中为Testcontainers配置的Docker服务(因为Testcontainers依赖Docker环境运行),修改bitbucket-pipelines.yml:
# 移除原有的Docker服务配置 # services: # - docker
若使用外部测试数据库,需确保Pipeline环境能访问该数据库,并在配置文件中正确配置连接信息。
内容的提问来源于stack exchange,提问作者David J
相关产品推荐
相关产品推荐

