自定义测试注释

3

我有一些需要Spring上下文才能运行的测试:

@SpringBootTest
@ContextConfiguration(classes = Application.class)
@Transactional
@ActiveProfiles("test")
@Rollback
@RunWith(SpringRunner.class)
public class SomeTest() {

    @Test
    public void test() {
        ...
    }

}

我已经为测试创建了自定义注解:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@SpringBootTest
@ContextConfiguration(classes = Application.class)
@Transactional
@ActiveProfiles("test")
@Rollback
@RunWith(SpringRunner.class)
public @interface DBTest {
}

现在,当我在我的测试中使用@DBTest注释时:
@DBTest
public class SomeTest {

    @Test
    public void test() {
        ...
    }

}

在这种情况下,Spring上下文没有启动。 我该如何启动它?
1个回答

4

尝试在你的SomeTest类注释中加入@RunWith(SpringRunner.class)。为了应用这些注释,你需要让Spring分析它们。但是由于你的RunWith不在你的类上,jUnit框架无法启动Spring,进而无法分析这些注释。


在你的类上,而不是注释上。 - Igor Deruga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接