Spring自定义注释集成测试

ami*_*que 3 java spring annotations spring-mvc

在我的所有Itegration测试中,我必须添加以下注释

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-context.xml")
@Transactional
Run Code Online (Sandbox Code Playgroud)

我在想是否可以创建一个自定义注释来将上述注释分组,而不是添加3个注释,我只能添加一个。为此,我创建了以下注释。

@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration("classpath:test-context.xml")
public @interface IntegrationTest {
  String[] value() default {};
}
Run Code Online (Sandbox Code Playgroud)

但是,当我添加@IntegrationTest测试类时,它不会加载上下文。谁能指导我所缺少的吗?

谢谢

小智 5

尝试分别添加@RunWith(SpringJUnit4ClassRunner.class)。

@RunWith(SpringJUnit4ClassRunner.class)
@IntegrationTest
public ControllerTest
Run Code Online (Sandbox Code Playgroud)

这是父类。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration("classpath:test-context.xml")
public @interface IntegrationTest
Run Code Online (Sandbox Code Playgroud)

我也避免使用名称“ @IntegrationTest”,因为它是Spring Boot中的默认注释。