有没有办法使用intellj为我的java测试使用额外的测试数据库?

有没有办法使用intellj为我的java测试使用额外的测试数据库?,java,hibernate,unit-testing,Java,Hibernate,Unit Testing,我正在尝试使用一个额外的测试数据库进行java测试 我使用Maven作为构建管理工具。作为测试框架Junit(JUnit5) 在Intellj的test文件夹中,我创建了一个额外的resources文件夹和hibernate.cfg.xml。与测试数据库的连接存储在此cfg文件中: <!-- Database connection settings --> <property name="connection.url">jdbc:mys

我正在尝试使用一个额外的测试数据库进行java测试

我使用Maven作为构建管理工具。作为测试框架Junit(JUnit5)

在Intellj的test文件夹中,我创建了一个额外的resources文件夹和hibernate.cfg.xml。与测试数据库的连接存储在此cfg文件中:

    <!-- Database connection settings -->
    <property name="connection.url">jdbc:mysql://localhost:3306/test_database</property>
    <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
    <property name="connection.username">root</property>
    <property name="connection.password"> </property>

    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">false</property>
    <property name="format_sql">true</property>
    <property name="current_session_context_class">thread</property>

    <!-- Mapping Entity classes -->
    <mapping class="entity.UserEntity"/>

jdbc:mysql://localhost:3306/test_database
com.mysql.cj.jdbc.Driver
根
org.hibernate.dialogue.mysqldialogue
假的
真的
线
有没有人有使用额外数据库进行测试的经验?使用iTelj.

有什么需要考虑的吗? 您是否将开发数据库和测试数据库分开进行测试?还是只使用一个数据库

说到javatests,我还是个新手


如果您需要更多信息,请告诉我。

我不完全清楚您的意思。通常,我们使用一个已知状态的专用数据库进行集成/e2e测试。我也看不出IntelliJ是如何在这方面发挥作用的。我们在谈论什么样的测试?单位?接受整合?E2E?您正在使用什么测试框架?你用的是maven还是gradle?@Turing85我用更多的信息扩展了这个问题。现在它只是关于单元测试。我正在测试register和login controller。老实说,对于单元测试,如果可能的话,我会模拟持久层,从而不会影响“真实”数据库。或者,我们可以使用内存中的H2数据库。但我们应该记住,H2的行为可能与MySQL或popstgres数据库不同。特别是,它可能会对不同的消息抛出不同的异常。谢谢你!为每个测试获取干净的独立数据库。