我正在使用Spring Boot在我的测试类上方便地添加注释,进行集成测试。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Config.class)
@IntegrationTest
@Sql({"classpath:rollback.sql", "classpath:create-tables.sql"})
@Transactional
我觉得在每个测试类中复制/粘贴整个代码块很难看,因此我创建了自己的@MyIntegrationTest
注释。
@SpringApplicationConfiguration(classes = Config.class)
@IntegrationTest
@Sql({"classpath:database-scripts/rollback.sql", "classpath:database-scripts/create-tables.sql", "classpath:database-scripts/insert-test-data.sql"})
@Transactional
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyIntegrationTest {
}
然而,如果我在我的新注解中添加@RunWith(SpringJUnit4ClassRunner.class)
,那么JUnit会运行其默认的运行器-这是不可取的。
因此,现在我必须使用两个注解。
@RunWith(SpringJUnit4ClassRunner.class)
@MyIntegrationTest
我想现在这样也可以,但有没有一种方法可以合并这些注释,这样我就能使用一个注释了呢?
AnnotatedBuilder
类是尝试通过注释检测任何Runner的类,并且它们使用:RunWith annotation = currentTestClass.getAnnotation(RunWith.class);
,因此它不会获取“注释上的注释”。虽然不确定为什么没有实现它,但我将在他们的GitHub上询问。 - Guillaume