in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

纵饮孤独 提交于 2019-11-28 09:05:02

问题


I tried to upgrade a yummy sandwich made of two test slices (@JsonTest and @JdbcTest in my case, crunchy test code in between) adding spring boot 2.1 flavour to it. But it seems it was not much of a success. I cannot annotate my tests with many @...Test since they are now each bringing their own XxxTestContextBootstrapper. It used to work when they all used same SpringBootTestContextBootstrapper.

@RunWith(SpringRunner.class)
@JdbcTest
@JsonTest
public class Test {
  @Test
  public void test() { System.out.printn("Hello, World !"); }
}

The error I get from BootstrapUtils is illegalStateException : Configuration error: found multiple declarations of @BootstrapWith for test class

I understand I might be doing something wrong here but is there an easy way I could load both Json and Jdbc contexts ?


回答1:


Test slice annotations aren't really designed to be composed like that. Your code worked in Spring Boot 2.0 only by luck I'm afraid.

You really need to pick just one @...Test annotation and then combine it with one or more @AutoConfigure... annotations. For the example above, I would write:

@RunWith(SpringRunner.class)
@JdbcTest
@AutoConfigureJson
@AutoConfigureJsonTesters
public class Test {

  @Test
  public void test() { 
    System.out.println("Hello, World !"); 
  }

}


来源:https://stackoverflow.com/questions/52527394/in-spring-boot-2-1-many-test-slices-are-not-allowed-anymore-due-to-multiple-boo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!