我在我的src/test/resources路径中创建了一个application-integrationtest.yaml,所以我的测试是针对创建的docker TestContainer运行的。问题是没有加载我的application-integrationtest.yaml。
我正在运行一个SpringBoot2.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]:工厂方法“index modificationDataSource”引发异常;嵌套异常为org.springframework.boot.autocigure.jdbc.datasourceproperties$datasourcebeancreationexception:在org.springframework.beans.factor.support.simpleinstantiationstrategy.instantiate(SimpleInstantiationstrategy.java:185)在org.springframework.beans.factor.support.constructorresolver.instantiateusingfactorymethod(
当我调试时,我看到我的数据源的驱动程序、Url、密码等都有空值。
我认为您需要将@profile注释添加到您的配置类中
我正在使用一个spring启动应用程序,它运行我的src/main/resources/config/application。yml。 当我通过以下方式运行测试用例时: 测试代码仍在运行我的应用程序。要加载属性的yml文件。我想知道是否有可能再运行一个*。运行测试用例时的yml文件。
问题内容: 我有一个包含2个测试的测试类: 当我单独运行测试时,我不会出错,但是当我同时运行所有测试时,会失败。失败是由于某些测试修改了应用程序上下文导致的: 是否可以单独运行此测试?我只想在启动test1时读取所有必需的东西,然后运行测试,然后关闭所有必需的东西。然后启动test2。 问题答案: 您可以在修改应用程序上下文的测试类上使用@DirtiesContext批注。 Java文档 Spri
嗨,我正试图让spring junit测试用例...我要求加载完整的应用程序上下文。但是,junit测试不会初始化完整的应用程序上下文。 因此,它应该扫描com.test包中的所有spring bean,并将它们加载到Junit TestCase的applicationcontext中。但从大豆的产量来看,它似乎没有做到这一点。
运行默认Spring Boot单元测试时: 我收到此错误: 我正在运行Spring Boot 2.6.2,使用Flyway和H2,以及这些依赖项: 这是演示项目:https://github.com/filip194/demo-h2-flyway/. 我不确定,也不是专家,但也许与Hibernate有一些关联,我无法理解。我试图为H2创建application.properties的测试资源文件夹
假设我想为类编写一个,它可以是,因此我需要加载。 我的测试有注释和main方法 当然,我有这样一些基准: 现在的问题是如何注入? 可能的解决办法