当前位置: 首页 > 知识库问答 >
问题:

Spring Boot 1.4@DataJpaTest-创建名为“dataSource”的bean时出错

高晋
2023-03-14

我已经创建了一个新的spring boot 1.4应用程序,希望使用@DataJpaTest进行一些测试,但不断收到以下错误消息

原因:组织。springframework。豆。工厂BeanCreationException:创建名为“dataSource”的bean时出错:调用init方法失败;嵌套的异常是java。lang.IllegalStateException:无法确定测试的嵌入式数据库。如果你想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。

src/main/资源/application.properties

spring.datasource.url=jdbc:mysql://localhost/my_db
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

MyRepositoryTest公司

@RunWith(SpringRunner.class)
@DataJpaTest
final public class MyRepositoryTest {
}

建筑格拉德尔

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web',
            'org.springframework.boot:spring-boot-starter-data-jpa',
            'mysql:mysql-connector-java',
            'org.projectlombok:lombok:1.16.10'

    testCompile('org.springframework.boot:spring-boot-starter-test')
}

知道我做错了什么吗?

共有2个答案

穆鸿波
2023-03-14

请在上课前加上这个。

@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)

它肯定会运行。

曹旭
2023-03-14

默认情况下,我们不提供嵌入式数据库。默认情况下,DataJpaTest将用嵌入式数据库替换数据源,但您没有嵌入式数据库。

因此,如果您想使用MySQL进行测试,请按如下方式替换您的测试:

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
final public class MyRepositoryTest {
}

如果您想使用内存中的数据库进行这些测试,则需要将其添加到测试类路径中。将此添加到gradle文件

testCompile('com.h2database:h2')
 类似资料:
  • 我对Spring Boot很陌生,正在尝试做一些测试。当我突然遇到一个我在过去三个小时一直试图解决的问题时... 我认为这里的主要问题是: 原因:org . spring framework . beans . factory . beancreationexception:创建名为“org . spring framework . boot . auto configure . flyway .

  • 我有一个实体类InAppNotification。看起来像这样的java: 我使用JPA来处理数据库查询,这就是JPA接口的定义: 这是我application.properties的样子: 但是,当我试图在构建后通过运行 来打包应用程序时,我会遇到以下问题: 尝试调用不存在的方法。尝试从以下位置进行:javax.el.ELManager.getExpress sionWorks(ELManage

  • 在将project从Spring Boot版本从1.2.3.release迁移到1.3.0.release之后,我已经开始得到以下异常。 创建类路径资源[org/springframework/boot/autoconfigure/admin/springapplicationadminjmxautoconfiguration.class]中定义的名为'Spring ApplicationAdmi

  • 我遵循本教程将消息发送到azure服务队列:https://docs.microsoft.com/en-us/azure/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-service-bus 到我现有的spring boot应用程序,但我得到以下错误: 用户类别: 控制器类: pom xml: 添加它

  • 我试图将弹性搜索集成到spring-boot应用程序中,但我得到了这个*创建名为“client”的bean时出错*异常,不确定是什么地方出了问题,因为我之前找不到任何类似的线索...非常感谢你为大家指路。这是mu elasticsearch配置: 这是我的主要应用程序: 我的pom.xml: 这是te异常跟踪:

  • 我有这些错误编译,我不知道我哪里错了,我只有这3个类