2017-11-22 15 views
0

Spring Initializer、埋め込みTomcat、Thymeleafテンプレートエンジン、およびパッケージを実行可能なJARファイルとして使用して、SpringブートWebアプリケーションを生成しました。使用Springブート2.0.0.M6でJunitテストを実行する際のエラー

技術:

春ブーツ2.0.0.M6、Javaの8、Mavenの

私はアプリでこの設定ファイル

@Configuration 
@Profile("prod") 
@EnableTransactionManagement /* Defines a Bean Post-Processor (proxies @Transactional bean) */ 
public class PersistenceConfig { 
@Bean 
    public MetricsRepository metricsRepository() { 
     return new JdbcMetricsRepository(); 
    } 
] 

を持っています。私は

@Service 
public class ExcelService { 

    @Autowired 
    MetricsRepository jdbcMetricsRepository; 
.. 
} 

は、私もこのJUnitテスト持って正常に動作します。このサービスがあります。

@ContextConfiguration(classes={PersistenceConfig.class}) 
@RunWith(SpringRunner.class) 
public class JdbcMetricsRepositoryTests { 

    @Autowired 
    MetricsRepository jdbcMetricsRepository; 

    @Test 
    public void testGetHotelReservations() throws DataAccessException, SQLException { 

     jdbcMetricsRepository.getHotelReservations(); 


    } 

} 

をが、テストを実行しているとき、私はこのエラーました:あなたは@SpringBootTest注釈を追加する必要があり

Error creating bean with name 'com.iberia.repository.JdbcMetricsRepositoryTests': Unsatisfied dependency expressed through field 'jdbcMetricsRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.iberia.repository.MetricsRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:581) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:367) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1340) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:400) 
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118) 
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) 
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:242) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 

答えて

0

をあなたのテストクラスに。

@SpringBootTest 
@ContextConfiguration(classes={PersistenceConfig.class}) 
@RunWith(SpringRunner.class) 
public class JdbcMetricsRepositoryTests { 
関連する問題