如何为测试制作不同的Hibernate配置?

时间:2014-08-29 03:48:00

标签: java hibernate maven

我有使用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构建项目,跳过所有测试并运行正常。但是对于测试souch,Hibernate配置不适用。

这种情况有没有办法为JUnit测试指定不同的配置文件?

最好的问候。

1 个答案:

答案 0 :(得分:3)

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