Latest revision as of 13:44, 18 April 2015

Contents

Running the foundation LRG

The foundation tests consist of an LRG (long regression), SRG (short regression), and various non-classified tests (non-LRG). If any code was changed in org.eclipse.persistence.core it is recommended to run the LRG. If minimal changes were made, the SRG is sufficient. Depending on what was changed, running some of the non-LRG tests may also be desirable.

There are several ways to run the tests:

Ant (1.7 or greater)

Eclipse JUnit

Testing Browser

Prior to running the tests, a build.properties file must exist in your user home directory with the following properties:

junit.lib=<full path of junit 4 jar>;<full path of hamcrest-core jar>

jdbc.driver.jar=<full path to your JDBC driver>

db.driver=<classname of your JDBC driver>

db.url=<JDBC url of your DB>

db.user=<db username>

db.pwd=<db password>

(optional) db.platform=<EclipseLink Database Platform to use> - this is only necessary if EclipseLink does not properly detect your DB platform with the "database detection" feature

Alternative approach is to move database related properties (jdbc.driver.jar, db.*) to an extra file and pass this file to the Ant build using '-Dtest.properties=<path to custom properties file>' option

Ant

The tests can be run from two ant build scripts

1. The base antbuild.xml (in repository root)

You can run the following targets:

test-core - run the Core LRG

test-core-srg - run the Core SRG

2. The antbuild.xml script in foundation/eclipselink.core.test

test-lrg - run the Core LRG

test-srg - run the Core SRG

Test logging will appear on Standard out and Standard Error. Test results will appear in foundation/eclipselink.core.test/reports

Eclipse JUnit

The eclipselink.core.test Eclipse project contains launch targets to run the LRG or SRG through the Eclipse JUnit integration.

Note that the majority of the foundation tests are built using a legacy test framework which has been migrated to extend JUnit. One issue is that the total number of tests are unknown before the tests are setup, so the progress bar in Eclipse will not be accurate.

If alternative approach for defining test related properties was taken, make sure to update reference in particular Run Configuration -> Arguments -> VM arguments section to be pointing to this new file. Look for line containing '-Dtest.properties=...'.

Testing Browser

Early in its existence, this product was tested with an in-house testing framework. A large number of tests are still available through this test framework. Testing is gradually being migrated to frameworks such as JUnit, but the GUI tool available in the legacy framework is still quite useful for testing. The code for this test framework is stored in the eclipselink.core.test project.

The eclipselink.core.test Eclipse project contains launch targets in the eclipselink.core.test/run directory to run the Testing Browser. Prior to running that target, you should run the "process-resource" target in the build.xml file in eclipselink.core.test (If you have run a full build, it will have been run already). Launching the browser is a matter of running that build target.

When you run the test target:

Input your DB login information. You can do this by selecting a value from the "Quick Login" drop box and then edit the form on the right side of the GUI with any information that is different from what is already populated

Run either the SRGTestModel or the LRGTestModel listed on the right side of the GUI by selecting it and then clicking the "Run Test" button.

You can run tests individually by navigating to them. You can open folders by double-clicking on them. If they don't immediately open, click the "setup" button and when setup is done, they should open.

You could also configure your own run target:

Run the process.resource target of the build.xml in the base directory of the eclipselink.core.test project as an ant script. This will copy some xml files to your eclipselink.core.test/run directory.

Create a Java Application run target on the eclipselink.core.test project - I'll call it Testing Browser

Use org.eclipse.persistence.testing.framework.ui.TestingBrowserFrame as the main class

Add "-Xmx256m -Djava.security.manager -Djava.security.policy==${workspace_loc:eclipselink.core.test}/resource/java.policy.allpermissions" to the VM arguments section of the Arguments tab

Add the following to the classpath: (note these are listed by category and you may be able to run subsets of the tests without certain categories)

Add an empty library project called extension.lib.external (user created) and put any and the following launch required jars into this folder - point the project to this folder and any dependencies in the classpath of the included eclipse launch targets will resolve.