如何在Spring Boot JUnit测试中排除*自动配置类?

2022-08-31 13:08:49

我试过了:

@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration(exclude=CrshAutoConfiguration.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class LikeControllerTest {

但是,CRaSSHD仍然启动。虽然目前它不会损害测试,但我想在单元测试期间禁用不必要的模块,以加快速度并避免潜在的冲突。


答案 1

另一种排除自动配置类的简单方法,

将以下类似配置添加到您的应用程序.yml 文件中,

---
spring:
  profiles: test
  autoconfigure.exclude: org.springframework.boot.autoconfigure.session.SessionAutoConfiguration

答案 2

热门答案并不指向更简单、更灵活的解决方案。

只需放置一个

@TestPropertySource(properties=
{"spring.autoconfigure.exclude=comma.seperated.ClassNames,com.example.FooAutoConfiguration"})
@SpringBootTest
public class MySpringTest {...}

测试类上方的注释。这意味着其他测试不受当前测试的特殊情况的影响。如果配置影响了大多数测试,请考虑按照当前顶部答案的建议使用弹簧配置文件。

感谢@skirsch鼓励我将其从评论升级到答案。


推荐