Test suite speed-up outside SingleEMFTestCase
---------------------------------------------

                 Key: OPENJPA-1153
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1153
             Project: OpenJPA
          Issue Type: Test
    Affects Versions: 1.2.1, 1.1.0
            Reporter: Milosz Tylenda
            Assignee: Milosz Tylenda
            Priority: Minor


>From the developer list [1]:

We have groups of tests which do not inherit from SingleEMFTestCase and use 
common persistence.xml files to do their setUp()s. Each persistence.xml 
contains all entities used by the group. An individual test uses its group's 
persistence.xml to set itself up although the test usually uses one or two 
entities. Not surprisingly getting database metadata and issuing DELETE TABLE 
statements often takes much more time than the actual test itself.

The most notable example is a group of tests located in 
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/. 
Their 
openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/kernel/common/apps/META-INF/persistence.xml
 contains almost 100 entities. I measured how long does it take to run 
TestDateQueries which uses only one entity but sets itself up with that 
persistence xml. I ran the test suite with -Dtest=TestDateQueries and the 
necessary tables were already in the database:

- Derby: 20 secs
- MySQL: 12 secs
- PostgreSQL: 46 secs

Then I modified the persistence.xml to include only the entity used by the 
test. The timings for all databases dropped to around 4 seconds.

My idea is to modify these tests (at least the ones taking the most time) and 
their superclass(-es) to not use persistence.xml but specify used entities as 
setUp() parameters, similarly to what SingleEMFTestCase. It looks like we would 
save at least a few minutes on a test suite run. 

[1] 
http://n2.nabble.com/Test-suite-speed-up-outside-SingleEMFTestCase-td3169383.html


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to