Commit e9f2e91f7e01a100741847f25b7d8de502b43d20
1 parent
3320f42b
解决 redis 和 mysql 在单元测试会报错的问题
Showing
8 changed files
with
16 additions
and
24 deletions
src/test/java/cn/iocoder/dashboard/config/QuartzTestConfiguration.java
| 1 | package cn.iocoder.dashboard.config; | 1 | package cn.iocoder.dashboard.config; |
| 2 | 2 | ||
| 3 | import org.mockito.Mockito; | 3 | import org.mockito.Mockito; |
| 4 | -import org.quartz.impl.StdScheduler; | 4 | +import org.quartz.Scheduler; |
| 5 | import org.springframework.context.annotation.Bean; | 5 | import org.springframework.context.annotation.Bean; |
| 6 | import org.springframework.context.annotation.Configuration; | 6 | import org.springframework.context.annotation.Configuration; |
| 7 | -import org.springframework.context.annotation.Lazy; | ||
| 8 | 7 | ||
| 9 | @Configuration | 8 | @Configuration |
| 10 | -@Lazy(false) | ||
| 11 | public class QuartzTestConfiguration { | 9 | public class QuartzTestConfiguration { |
| 12 | 10 | ||
| 13 | @Bean | 11 | @Bean |
| 14 | - public StdScheduler scheduler() { | ||
| 15 | - return Mockito.mock(StdScheduler.class); | 12 | + public Scheduler scheduler() { |
| 13 | + return Mockito.mock(Scheduler.class); | ||
| 16 | } | 14 | } |
| 17 | 15 | ||
| 18 | } | 16 | } |
src/test/java/cn/iocoder/dashboard/config/RedisTestConfiguration.java
| @@ -12,7 +12,7 @@ import org.springframework.context.annotation.Lazy; | @@ -12,7 +12,7 @@ import org.springframework.context.annotation.Lazy; | ||
| 12 | 12 | ||
| 13 | import java.io.IOException; | 13 | import java.io.IOException; |
| 14 | 14 | ||
| 15 | -@Configuration | 15 | +@Configuration(proxyBeanMethods = false) |
| 16 | @Lazy(false) // 禁用懒加载,因为需要保证 Redis Server 必须先启动 | 16 | @Lazy(false) // 禁用懒加载,因为需要保证 Redis Server 必须先启动 |
| 17 | @EnableConfigurationProperties(RedisProperties.class) | 17 | @EnableConfigurationProperties(RedisProperties.class) |
| 18 | @AutoConfigureBefore({RedisAutoConfiguration.class, RedissonAutoConfiguration.class}) // 在 Redis 自动配置前,进行初始化 | 18 | @AutoConfigureBefore({RedisAutoConfiguration.class, RedissonAutoConfiguration.class}) // 在 Redis 自动配置前,进行初始化 |
| @@ -32,6 +32,7 @@ public class RedisTestConfiguration { | @@ -32,6 +32,7 @@ public class RedisTestConfiguration { | ||
| 32 | @Bean(destroyMethod = "stop") | 32 | @Bean(destroyMethod = "stop") |
| 33 | public RedisServer redisServer(RedisProperties properties) throws IOException { | 33 | public RedisServer redisServer(RedisProperties properties) throws IOException { |
| 34 | RedisServer redisServer = new RedisServer(properties.getPort()); | 34 | RedisServer redisServer = new RedisServer(properties.getPort()); |
| 35 | + // TODO 芋艿:一次执行多个单元测试时,貌似创建多个 spring 容器,导致不进行 stop。这样,就导致端口被占用,无法启动。。。 | ||
| 35 | try { | 36 | try { |
| 36 | redisServer.start(); | 37 | redisServer.start(); |
| 37 | } catch (Exception ignore) {} | 38 | } catch (Exception ignore) {} |
src/test/java/cn/iocoder/dashboard/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java
| 1 | package cn.iocoder.dashboard.modules.tool.dal.mysql.codegen; | 1 | package cn.iocoder.dashboard.modules.tool.dal.mysql.codegen; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.BaseSpringBootUnitTest; | ||
| 3 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO; | 4 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO; |
| 4 | import org.junit.jupiter.api.Test; | 5 | import org.junit.jupiter.api.Test; |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | ||
| 6 | -import org.springframework.test.context.ActiveProfiles; | ||
| 7 | -import org.springframework.test.context.jdbc.Sql; | ||
| 8 | 6 | ||
| 9 | import javax.annotation.Resource; | 7 | import javax.annotation.Resource; |
| 10 | import java.util.List; | 8 | import java.util.List; |
| 11 | 9 | ||
| 12 | import static org.junit.jupiter.api.Assertions.assertTrue; | 10 | import static org.junit.jupiter.api.Assertions.assertTrue; |
| 13 | 11 | ||
| 14 | -@SpringBootTest | ||
| 15 | -@ActiveProfiles("unit-test") | ||
| 16 | -public class ToolInformationSchemaColumnMapperTest { | 12 | +public class ToolInformationSchemaColumnMapperTest extends BaseSpringBootUnitTest { |
| 17 | 13 | ||
| 18 | @Resource | 14 | @Resource |
| 19 | private ToolSchemaColumnMapper toolInformationSchemaColumnMapper; | 15 | private ToolSchemaColumnMapper toolInformationSchemaColumnMapper; |
| 20 | 16 | ||
| 21 | @Test | 17 | @Test |
| 22 | - @Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) | ||
| 23 | public void testSelectListByTableName() { | 18 | public void testSelectListByTableName() { |
| 24 | List<ToolSchemaColumnDO> columns = toolInformationSchemaColumnMapper | 19 | List<ToolSchemaColumnDO> columns = toolInformationSchemaColumnMapper |
| 25 | .selectListByTableName("inf_config"); | 20 | .selectListByTableName("inf_config"); |
src/test/java/cn/iocoder/dashboard/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java
| 1 | package cn.iocoder.dashboard.modules.tool.dal.mysql.codegen; | 1 | package cn.iocoder.dashboard.modules.tool.dal.mysql.codegen; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.BaseSpringBootUnitTest; | ||
| 3 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO; | 4 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO; |
| 4 | import org.junit.jupiter.api.Test; | 5 | import org.junit.jupiter.api.Test; |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | ||
| 6 | 6 | ||
| 7 | import javax.annotation.Resource; | 7 | import javax.annotation.Resource; |
| 8 | import java.util.List; | 8 | import java.util.List; |
| 9 | 9 | ||
| 10 | import static org.junit.jupiter.api.Assertions.assertTrue; | 10 | import static org.junit.jupiter.api.Assertions.assertTrue; |
| 11 | 11 | ||
| 12 | -@SpringBootTest | ||
| 13 | -class ToolInformationSchemaTableMapperTest { | 12 | +class ToolInformationSchemaTableMapperTest extends BaseSpringBootUnitTest { |
| 14 | 13 | ||
| 15 | @Resource | 14 | @Resource |
| 16 | private ToolSchemaTableMapper toolInformationSchemaTableMapper; | 15 | private ToolSchemaTableMapper toolInformationSchemaTableMapper; |
src/test/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenEngineTest.java
| 1 | package cn.iocoder.dashboard.modules.tool.service.codegen.impl; | 1 | package cn.iocoder.dashboard.modules.tool.service.codegen.impl; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.BaseSpringBootUnitTest; | ||
| 3 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO; | 4 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO; |
| 4 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO; | 5 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO; |
| 5 | import cn.iocoder.dashboard.modules.tool.dal.mysql.codegen.ToolCodegenColumnMapper; | 6 | import cn.iocoder.dashboard.modules.tool.dal.mysql.codegen.ToolCodegenColumnMapper; |
| @@ -11,8 +12,7 @@ import javax.annotation.Resource; | @@ -11,8 +12,7 @@ import javax.annotation.Resource; | ||
| 11 | import java.util.List; | 12 | import java.util.List; |
| 12 | import java.util.Map; | 13 | import java.util.Map; |
| 13 | 14 | ||
| 14 | -@SpringBootTest | ||
| 15 | -public class ToolCodegenEngineTest { | 15 | +public class ToolCodegenEngineTest extends BaseSpringBootUnitTest { |
| 16 | 16 | ||
| 17 | @Resource | 17 | @Resource |
| 18 | private ToolCodegenTableMapper codegenTableMapper; | 18 | private ToolCodegenTableMapper codegenTableMapper; |
src/test/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenSQLParserTest.java
| 1 | package cn.iocoder.dashboard.modules.tool.service.codegen.impl; | 1 | package cn.iocoder.dashboard.modules.tool.service.codegen.impl; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.BaseSpringBootUnitTest; | ||
| 3 | import org.junit.jupiter.api.Test; | 4 | import org.junit.jupiter.api.Test; |
| 4 | 5 | ||
| 5 | -import static org.junit.jupiter.api.Assertions.*; | ||
| 6 | - | ||
| 7 | -class ToolCodegenSQLParserTest { | 6 | +public class ToolCodegenSQLParserTest extends BaseSpringBootUnitTest { |
| 8 | 7 | ||
| 9 | @Test | 8 | @Test |
| 10 | public void testParse() { | 9 | public void testParse() { |
src/test/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenServiceImplTest.java
| 1 | package cn.iocoder.dashboard.modules.tool.service.codegen.impl; | 1 | package cn.iocoder.dashboard.modules.tool.service.codegen.impl; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.BaseSpringBootUnitTest; | ||
| 3 | import org.junit.jupiter.api.Test; | 4 | import org.junit.jupiter.api.Test; |
| 4 | import org.springframework.boot.test.context.SpringBootTest; | 5 | import org.springframework.boot.test.context.SpringBootTest; |
| 5 | 6 | ||
| 6 | import javax.annotation.Resource; | 7 | import javax.annotation.Resource; |
| 7 | 8 | ||
| 8 | -@SpringBootTest | ||
| 9 | -class ToolCodegenServiceImplTest { | 9 | +class ToolCodegenServiceImplTest extends BaseSpringBootUnitTest { |
| 10 | 10 | ||
| 11 | @Resource | 11 | @Resource |
| 12 | private ToolCodegenServiceImpl toolCodegenService; | 12 | private ToolCodegenServiceImpl toolCodegenService; |
src/test/resources/application-unit-test.yaml
| @@ -31,7 +31,7 @@ spring: | @@ -31,7 +31,7 @@ spring: | ||
| 31 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 | 31 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 |
| 32 | redis: | 32 | redis: |
| 33 | host: 127.0.0.1 # 地址 | 33 | host: 127.0.0.1 # 地址 |
| 34 | - port: 36379 # 端口(单元测试,使用 363979 端口) | 34 | + port: 16379 # 端口(单元测试,使用 16379 端口) |
| 35 | database: 0 # 数据库索引 | 35 | database: 0 # 数据库索引 |
| 36 | 36 | ||
| 37 | --- #################### 定时任务相关配置 #################### | 37 | --- #################### 定时任务相关配置 #################### |