本文介绍了如何在Spring Boot JUnit测试中排除* AutoConfiguration类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试过了:

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

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

However the CRaSSHD still starts up. While currently it doesn't harm the test, I'd like to disable unnecessary modules during unit testing to speed up and also avoid potential conflicts.

推荐答案

我有一个类似的用例,我想隔离测试一个Spring Boot配置的存储库(在我没有Spring Security自动配置的情况下测试失败)。 @SpringApplicationConfiguration 使用 SpringApplicationContextLoader 并且有一个JavaDoc说明

I had a similar use case where I wanted to test a Spring Boot configured repository in isolation (in my case without Spring Security autoconfiguration which was failing my test). @SpringApplicationConfiguration uses SpringApplicationContextLoader and that has a JavaDoc stating

然而,就像你自己一样,我无法弄清楚你是如何配置测试只使用主配置入口点测试存储库层,即使用 @SpringApplicationConfiguration(classes = Application.class)。

However, like yourself, I could not work out how you are meant to configure the test to only test the repository layer using the main configuration entry point i.e. using your approach of @SpringApplicationConfiguration(classes = Application.class).

我的解决方案是创建一个专用于测试的全新应用程序上下文。所以在src / test / java中,我在子包中有两个名为repo的文件

My solution was to create a completely new application context exclusive for testing. So in src/test/java I have two files in a sub-package called repo


  1. RepoIntegrationTest.java

  2. TestRepoConfig.java

  1. RepoIntegrationTest.java
  2. TestRepoConfig.java

其中 RepoIntegrationTest.java

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestRepoConfig.class)
public class RepoIntegrationTest {

TestRepoConfig.java

@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
public class TestRepoConfig {

它让我摆脱了麻烦但是如果来自Spring Boot团队的任何人都能提供另一种推荐的解决方案

It got me out of trouble but it would be really useful if anyone from the Spring Boot team could provide an alternative recommended solution

这篇关于如何在Spring Boot JUnit测试中排除* AutoConfiguration类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 22:05