【问题标题】:How to make different Hibernate configuration for tests?如何为测试进行不同的 Hibernate 配置?
【发布时间】:2014-08-29 03:47:59
【问题描述】:

我有带有 Hibernate 的 JSF 应用程序。我在 hibernate.cfg.xml 中使用 Tomcat 连接池

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>
        <!-- using Tomcat connections -->
    <property name="connection.datasource">java:/comp/env/jdbc/netstat</property>    
    <!-- Parameters for Hibernate connection provider
    <property name="connection.driver_class">org.postgresql.Driver</property>
        <property name="connection.url">jdbc:postgresql://localhost:5432/netstat</property>
        <property name="connection.username">netstat</property>
        <property name="connection.password">netstat</property>
    -->

        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- configuration pool via c3p0 -->
    <!--
        <property name="c3p0.min_size">5</property>
        <property name="c3p0.max_size">100</property>
        <property name="c3p0.max_statements">200</property>
        <property name="c3p0.timeout">600</property>
    -->

        <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
        <property name="current_session_context_class">thread</property>
        <property name="hibernate.show_sql">false</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <!-- Mapping classes -->
        <mapping class="ru.gooamoko.model.Group" />
        <mapping class="ru.gooamoko.model.Host" />
        <mapping class="ru.gooamoko.model.Traffic" />
        <mapping class="ru.gooamoko.model.DailyTraffic" />

    </session-factory>
</hibernate-configuration>

可以使用 maven 构建项目,跳过所有测试并正常运行。但是对于测试,这样的 Hibernate 配置不适用。

这种情况下有什么方法可以为 JUnit 测试指定不同的配置文件吗?

最好的问候。

【问题讨论】:

    标签: java hibernate maven


    【解决方案1】:

    将测试文件放在src/test/resources 中,执行测试时该文件将优先放在类路径中

    【讨论】:

    • 感谢您的回答!我想,我不需要 C3PO 池管理器进行测试,所以我配置了默认的 JDBC 池。对吗?
    • 你应该将它测试为接近真实应用程序,这样你会在之前发现更多问题
    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2014-06-22
    • 1970-01-01
    相关资源
    最近更新 更多