我有一些测试需要运行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上下文未启动。 我怎么能开始呢?
答案 0 :(得分:3)
尝试将@RunWith(SpringRunner.class)放入SomeTest类注释中。为了应用注释,您需要弹簧来分析它们。但是因为你的RunWith不在你的类上,所以jUnit框架不会启动spring,反过来,它不会分析注释。