在 spring boot 2.1 中,由于多个 @BootstrapWith,许多测试片不再被允许

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

我试图升级一个由两个测试切片制成的美味三明治(@JsonTest 和@JdbcTest 在我的例子中,中间有松脆的测试代码)添加 spring 启动2.1的味道吧。但似乎并没有太大的成功。我不能用许多 @...Test 注释我的测试,因为它们现在每个都带有自己的 XxxTestContextBootstrapper。它曾经在他们都使用相同的 SpringBootTestContextBootstrapper 时工作。

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

我从 BootstrapUtils 得到的错误是 illegalStateException : 配置错误:发现@BootstrapWith 的多个声明用于测试class

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

测试切片注释并不是真正设计成这样的。恐怕你的代码在 Spring Boot 2.0 中工作只是运气。

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

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

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

}