我有一个Spring Boot应用程序,有很多单元测试。所有测试类都没有注释。他们都只是扩展了以下抽象类,他们也得到了注释:
@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration
@SpringApplicationConfiguration(classes = { MoneyjinnConfiguration.class })
@WebAppConfiguration
@SqlGroup({ @Sql(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD, scripts = { "classpath:h2defaults.sql",
"classpath:testdata.sql" }) })
public abstract class AbstractTest {
}
由于不推荐使用Spring Boot 1.4.0 @SpringApplicationConfiguration
。我尝试用@SpringBootTest
和@ContextConfiguration(classes = { MoneyjinnConfiguration.class })
替换它,但现在我的所有测试都失败了:
Caused by: java.lang.IllegalArgumentException: No auto-configuration attributes found. Is org.laladev.moneyjinn.businesslogic.service.impl.ContractpartnerAccountServiceTest annotated with EnableAutoConfiguration?
当我现在使用@EnableAutoConfiguration
注释具体的测试类时,它会继续工作。
老实说 - 我不想通过将@EnableAutoConfiguration
从抽象类移动到所有具体的测试类来修改我的所有测试类。我有点喜欢将所有注释放在一个中心位置的方法 - 我的AbstractTest
类。
我错过了什么吗?