如何在Spring Boot JUnit测试中排除*AutoConfiguration类?

8 浏览
0 Comments

如何在Spring Boot JUnit测试中排除*AutoConfiguration类?

我尝试了以下代码:\n

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

\n然而,CRaSSHD仍然启动。虽然目前它不会对测试造成影响,但我希望在单元测试期间禁用不必要的模块,以加快速度并避免潜在的冲突。

0
0 Comments

问题的出现原因是在使用Spring Boot的JUnit测试中,想要排除某些自动配置类,但无法找到正确的配置方法。解决方法是创建一个专门用于测试的新应用上下文。在src/test/java目录下创建一个名为repo的子包,其中包含两个文件:RepoIntegrationTest.java和TestRepoConfig.java。RepoIntegrationTest.java文件中配置了@Test注解和指定的测试配置类TestRepoConfig.java。TestRepoConfig.java文件中使用了exclude注解来排除SecurityAutoConfiguration类。这样就实现了只测试repository层的目的。但仍然期待Spring Boot团队能提供更好的解决方案。根据问题补充的内容,Application和TestRepoConfig类分别位于com.company.app和com.company.app.repo包中。

0
0 Comments

在使用Spring Boot进行JUnit测试时,有时需要在测试用例中排除一些配置类,以避免加载这些类对测试产生影响。有一个问题是关于如何在Spring Boot的JUnit测试中排除*AutoConfiguration类的。

解决方法是在测试类上方使用注解`@TestPropertySource(properties = {"spring.autoconfigure.exclude=comma.seperated.ClassNames,com.example.FooAutoConfiguration"})`。这样可以排除指定的配置类,使得其他测试用例不受当前测试用例特殊情况的影响。如果有一个配置影响大部分测试用例,可以考虑使用spring profile来解决。

下面是一个示例代码:

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

这个解决方法非常简单且灵活,可以很好地解决在Spring Boot的JUnit测试中排除*AutoConfiguration类的问题。

原问题链接:[java spring boot test how to exclude java configuration class from test context](https://stackoverflow.com/questions/39729752?rq=1)

0
0 Comments

问题的原因是在Spring Boot的JUnit测试中,有时需要排除自动配置类。解决方法是在application.yml文件中添加配置,使用spring.autoconfigure.exclude属性来排除自动配置类。可以通过在属性中指定多个类名,用逗号分隔。另外,还可以在*Test类上使用properties注解来指定spring.autoconfigure.exclude属性,避免为每个不需要的配置创建一个新的配置文件。

以下是具体的解决方法:

在application.yml文件中添加以下类似的配置:

---

spring:

profiles: test

autoconfigure.exclude: org.springframework.boot.autoconfigure.session.SessionAutoConfiguration

如果需要排除多个自动配置类,可以在spring.autoconfigure.exclude属性中指定所有类名,用逗号分隔。

另外,可以在*Test类上使用properties注解来指定spring.autoconfigure.exclude属性,避免为每个不需要的配置创建一个新的配置文件。示例代码如下:

@RunWith(SpringRunner.class)
@SpringBootTest(properties= {"spring.autoconfigure.exclude=comma.seperated.ClassNames,com.example.FooAutoConfiguration"})
public class MyTest {
    // test code here
}

以上就是如何在Spring Boot的JUnit测试中排除自动配置类的方法。这些方法简单有效,能够节省时间和精力。

0