Version 3

    This page is out of date: content has moved there.



    Previously, all hibernate modules were featuring a file that was bound to H2 connection properties only.

    To run tests on a different database, the hibernate-matrix-testing was required.


    To allow running any test on any database, I created the following PR which I also integrated on master.


    Running tests


    In the hibernate-orm project root, there is a new configuration file called: databases.gradle which looks this:


    ext {
        db = 'h2'
        dbBundle = [
            h2 : [
                'db.dialect' : 'org.hibernate.dialect.H2Dialect',
                'jdbc.driver': 'org.h2.Driver',
                'jdbc.user'  : 'sa',
                'jdbc.pass'  : '',
                'jdbc.url'   : 'jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;LOCK_TIMEOUT=10000',
            hsqldb : [
                'db.dialect' : 'org.hibernate.dialect.HSQLDialect',
                'jdbc.driver': 'org.hsqldb.jdbc.JDBCDriver',
                'jdbc.user'  : 'sa',
                'jdbc.pass'  : '',
                'jdbc.url'   : 'jdbc:hsqldb:mem:test'
            pgsql : [
                'db.dialect' : 'org.hibernate.dialect.PostgreSQL94Dialect',
                'jdbc.driver': 'org.postgresql.Driver',
                'jdbc.user'  : 'hibernate_orm_test',
                'jdbc.pass'  : 'hibernate_orm_test',
                'jdbc.url'   : 'jdbc:postgresql:hibernate_orm_test'


    This is where we can add every database specific configuration properties. Having a new file, allows us to git-ignore it so that each developer can add its own local environment configuration properties.


    By default, all tests are run against H2, and to switch to a different database (e.g. PostgreSQL) you can run the following Gradle command:


    gradle clean test -Pdb=pgsql




    To debug a certain test in your favorite IDE, you could first run the following command:


    gradle clean testClasses -Pdb=pgsql


    This command will generate the target/resources/test/ configuration file with the right configuration properties taken from the databases.gradle file.


    Then you can just