[hibernate-dev] ORM and database testing

Steve Ebersole steve at hibernate.org
Thu May 28 09:33:16 EDT 2015

Now that CR1 is out one of my tasks is to start setting up the database
specific jobs on CI.  Initially I will just work with MySQL and PostrgeSQL
(and maybe HSQLDB).

Part of this will be auditing how we do database testing (matrix plugin)
and what does/doesn't work there.  I definitely like the idea of "database
profiles".  Overall I am not sure that dynamically generating tasks
specific to each database profile was a great idea.  It was predicated on
the idea that I might want to run tests against all database profiles.  But
that simply has not been the case in practice to date.  I have to look
again at the complexity the actual matrix stuff adds.  If it is a lot of
complexity I might just remove that part and have this be driven by a
single build parameter (`gradle test -PdbProfile=mysql`, e.g.).

I'd also like to look at specific hooks for the profiles in terms of
pre-/post-events at the suite, class and test levels.  For example, we
might have the H2 profile set up pre-post hooks for the suite to manage the
database rather than each test building one itself.  This would have a lot
of benefits.  Presumably it would help speed up the build some.  It would
also work more closely to non-in-memory test builds and possibly help shake
out test problems in regards to db-object conflicts earlier.  Also, in
general we might decide to hook in after each class to drop schemas
(ultimately HHH-8451 is a better solution to both of these I think).

Anything else to consider here?

More information about the hibernate-dev mailing list