SpringBootTest 启动一直刷新不执行方法体
时间: 2023-08-05 20:21:50 浏览: 87
SpringBootTest
这种情况可能是因为 Spring Boot 应用启动时,需要加载很多的配置文件和依赖,导致启动时间比较长。如果你的测试方法在 Spring Boot 应用启动之前就执行了,就会导致测试方法无法执行。
你可以尝试加上 `@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class, SpringBootTestContextBootstrapper.class})` 注解,来确保 Spring Boot 应用在测试方法执行之前启动。例如:
```java
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class, SpringBootTestContextBootstrapper.class})
public class MyTest {
@Autowired
private MyService myService;
@Test
public void test() {
// 测试代码
}
}
```
如果你的测试方法依赖于外部资源(例如数据库、网络接口等),则需要使用 `@DirtiesContext` 注解,来确保每次测试方法执行之前,都可以重新创建一个干净的测试环境。例如:
```java
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class, SpringBootTestContextBootstrapper.class})
public class MyTest {
@Autowired
private MyService myService;
@Test
@DirtiesContext
public void test() {
// 测试代码
}
}
```
阅读全文