【问题标题】:Spring Boot Test doesnt load application contextSpring Boot Test 不加载应用程序上下文
【发布时间】:2019-06-16 22:01:24
【问题描述】:

我在我的 src/test/resources 路径中创建了一个 application-integrationtest.yaml,因此我的测试针对创建的 docker testcontainer 运行。问题是我的 application-integrationtest.yaml 没有被加载。

我正在运行 SpringBoot 2.x 应用程序

这是我的数据源类

@Configuration
public class IndexModificationDatabaseConfiguration {

  @Bean
  public JOOQToSpringExceptionTransformer 
  jooqToSpringExceptionTransformer() {
    return new JOOQToSpringExceptionTransformer();
  }

  @Bean
  public DataSourceConnectionProvider connectionProvider(final DataSource 
  dataSource) {
    return new DataSourceConnectionProvider(new 
    TransactionAwareDataSourceProxy(dataSource));
  }

  @Bean(name = "indexModification")
  @ConfigurationProperties("index-modified.datasource")
  public DataSourceProperties dataSourceProperties() {
    return new DataSourceProperties();
  }

  @Bean
  public DataSource 
  indexModificationDataSource(@Qualifier("indexModification") final 
  DataSourceProperties properties) {
    return properties.initializeDataSourceBuilder().build();
  }

  @Bean
  public DSLContext 
  createIndexModifiedDslContext(@Qualifier("indexModificationDataSource") 
  final DataSource dataSource) {
    final DefaultConfiguration configuration = new DefaultConfiguration();
    configuration.set(connectionProvider(dataSource));
    configuration.set(new 
    DefaultExecuteListenerProvider(jooqToSpringExceptionTransformer()));
    configuration.set(SQLDialect.POSTGRES);
    return new DefaultDSLContext(configuration);
  }
}

这是我的测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {IndexModificationDatabaseConfiguration.class})
@ActiveProfiles("integrationtest")
public class ContainerOrchestrator {

  @Test
  public void testContainer() {
  assertTrue(true);
  }
}

例外是

原因:org.springframework.beans.BeanInstantiationException:无法实例化[javax.sql.DataSource]:工厂方法'indexModificationDataSource'抛出异常;嵌套异常是 org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException:无法确定合适的驱动程序类 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) 在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582) ... 55 更多 原因:org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException:无法确定合适的驱动类

当我调试时,我发现我的数据源在 Driver、Url、密码等上有空值。

【问题讨论】:

  • 如果删除 (classes = {IndexModificationDatabaseConfiguration.class}) 会发生什么?您确定您的个人资料一切正常吗?
  • 啊,现在可以了!我想我必须注释我要注入的类,ty vm

标签: spring spring-boot


【解决方案1】:

我认为您需要在配置类中添加@Profile 注释

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2015-02-19
    • 2018-07-11
    • 1970-01-01
    • 2015-07-19
    • 2019-02-15
    • 2021-08-13
    相关资源
    最近更新 更多