在Spring Boot 2.1中,由于多个@BootstrapWith而不再允许许多测试片

cac*_*age 3 spring-boot-test

我试图升级由两个测试片(在我的情况下为@JsonTest和@JdbcTest,中间是脆脆的测试代码)制成的美味三明治,为其添加了spring boot 2.1风味。但似乎并没有太大的成功。我无法使用许多@ ... Test注释测试,因为它们现在各自带有自己的XxxTestContextBootstrapper。当他们都使用相同的SpringBootTestContextBootstrapper时,它可以正常工作。

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

我从BootstrapUtils收到的错误是llegalStateStateException:配置错误:为测试类找到了@BootstrapWith的多个声明

我知道我在这里可能做错了什么,但是有一种简单的方法可以同时加载Json和Jdbc上下文吗?

Phi*_*ebb 6

测试切片注释并不是真正设计成像这样组成。恐怕您的代码只能在Spring Boot 2.0中起作用。

您确实只需要选择一个@...Test注释,然后将其与一个或多个@AutoConfigure...注释结合即可。对于上面的示例,我将编写:

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

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

}
Run Code Online (Sandbox Code Playgroud)