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